type of microprocessors are used in computers nowadays. But the 8086 was
considered to be made the base for the current microprocessor we are using.
is the first 16 bit microprocessor, so have a numbers of 16 bit internal
register,16 bit data bus thus faster than 8085(have 8 bit) .A concept
instruction queue is also included in 8086 to fetch instruction from memory and
store them. Also advanced of pipelining which have two stages in it increases
the performance. The number of address bus is 20 while memory size is extended
architecture of 8086 have two components(units).1)Bus interference unit (BIU)
It works as an intimidate between EU
and system buses.It transfers the data required for execution and address
location to EU. It operates on bus cycle hence can perform cycles for data
transferring between I/O devices and memory. The main operation perform by BIU
is to generate physical address which of 20 bits for memory
accesss,transferring data between IO and memory,fetch instruction and
increases performance by using instruction queue(6bytes).
1. Segment Register
2. Instruction Pointer
3. Instruction Queue
1. Segment registers
are 4 types of such registers to hold the address of data and instruction given
to execute in memory.This is used by processors to access memory locations.
§ 1.CS :also know as code segment registers.All the
program written are stored in code segment. This register is used to hold the
base addresss of code segment .
§ 2.DS: also known as data
segment register.All the data used in program are stored in a data segment.It
is used to hold the base address of data segment .
§ 3.ES: also known asa extra
segment register.Sometime the data is too large to store in DS so such data is
transferred in this register generally used by strings.
§ 4. SS: also known as stack
segment.It is used to handle memory for store the address and data in form of
stack during execution of program. Holds the base address of stack segment.
is a type of 16 bit Register which is used to hold the address of next
instruction which is going to execute.The increment is done in IP after every
instruction is fetch.
is filled upto 6bytes of instruction which is going to execute and stores them
in the queue until current instruction is executed. Fetching of instruction is
done when previous is executing.
controls all ALU operation on data as per the instruction is given.It guides
the BIU to fetch data and then EU decode that data using instruction decoder
and then perform operation with the help of ALU.
Also known as arithmetic
and logic unit.Its performs all arithmetic operation like addition, substraction,
multiplication, etc and logical operation like OR, And etc.
2).General purpose Register
There are 4 such registers
but as they are of 16 bits each one is divided in two equal parts hence in
total 8 registers.for example AX is register so AL part will lower 8 bit while
the AH will store higher bit
§ AX: also known as
accumulator.It holds the result and operand data during arithmetic operations.
§ BX: Base register .it
holds starting base address in data segment in indirect addressing mode.
§ CX: also known as counter
.Used to count for instructionslike strings,loops,etc.
§ DX:In indirect addressing
mode it holds the I/O port address used in I/O instructions.
3).Special purpose register:
§ Stack pointer:Used to hold
the address of top of the stack.
§ Source Index Register:
Holds starting address of data segment and also address of source data indurind
§ Base pointer: Random access
in stack segment is done because it holds starting address of any location in
§ Destination index:
Generally holds starting address of Extra segment but can also hold address of
Eu the fetching of opcode is done from queue.It then send this info to control
system for execution which send it in formof signals to EU unit
types 1)Conditional Flag 2)Control flags
Parity flag: This is used to determine parity of lower 8
bit.If the number of 1 is odd then the parity flag is reset,else if number of 1
is even it will set the flag.
Zero flag: When result of any arithmetic results is zero then
the parity flag is set else it will remains reset.
Carry flag: It is used to indicate the overflow condition in
the unsigned integer arithmetic operations.
Auxiliary flag: If the carry/borrow is generated during
arthemetic operation from lowest nibble to its higher one then this flag is set to 1.
Sign flag: It is used to indicate the sign of result if the
result is positive then the flag is set to 0 and if negative then 1.
Overflow flag:When the memory of system exceeded to store the
result then this flag is set to 1.
are set or reset so that they can control the operations of execution unit.
Trap flag:It is very useful in debugging process because of
single step control when it is set which allow the user to execute one
instruction at one time.
Interupt flag:It is used to allow or disallow the execution
of interrupt in program.If it is set to 1 then ineterrupt is allow else not.
Direction flag: This flag is used only in string
operations.when the flag is set 1 then the pointer moves from lower position to
higher position in string.