Hardware Architecture of 8086
Microprocessor
ü Intel
8086 was launched in 1978.
ü It was
the first 16-bit microprocessor.
ü This
microprocessor had major improvement over the execution speed of 8085.
ü It is
available as 40-pin Dual-Inline-Package (DIP).
ü It is
available in three versions:
a. 8086 (5
MHz)
b. 8086-2 (8
MHz)
c. 8086-1
(10 MHz)
ü It
consists of 29,000 transistors.
Bus Interface Unit (BIU):
The
function of BIU is to
ü Fetch the
instruction or data from memory.
ü Write the
data to memory.
ü Write the
data to the port.
ü Read data
from the port.
Instruction Queue:
ü To
increase the execution speed, BIU fetches as many as six instruction bytes
ahead to time from memory.
ü All six
bytes are then held in first in first out 6 byte register called instruction
queue.
ü Then all
bytes have to be given to EU one by one.
ü This pre
fetching operation of BIU may be in parallel with execution operation of EU,
which improves the speed execution of the instruction.
Execution Unit (EU):
The
functions of execution unit are
ü To tell
BIU where to fetch the instructions or data from.
ü To decode
the instructions.
ü To
execute the instructions
The EU
contains the control circuitry to perform various internal operations. A
decoder in EU decodes the instruction fetched memory to generate different
internal or external control signals required to perform the operation. EU has
16-bit ALU, which can perform arithmetic and logical operations on 8-bit as
well as 16-bit.
General Purpose Registers of 8086:
These
registers can be used as 8-bit registers individually or can be used as 16-bit
in pair to have AX,BX, CX, and DX.
a. AX
Register: AX register is also known as accumulator register that stores
operands for arithmetic operation like divided, rotate.
b. BX
Register: This register is mainly used as a base register. It holds the
starting base location of a memory region within a data segment.
c. CX
Register: It is defined as a counter. It is primarily used in loop instruction
to store loop counter.
d. DX
Register: DX register is used to contain I/O port address for I/O instruction.
Segment Registers:
Additional
registers called segment registers generate memory address when combined with
other in the microprocessor. In 8086 microprocessor, memory is divided into 4
segments as follow:
a. Code
Segment (CS): The CS register is used for addressing a memory location in the
Code Segment of the memory, where the executable program is stored.
b. Data
Segment (DS): The DS contains most data used by program. Data are accessed in
the Data Segment by an offset address or the content of other register that
holds the offset address.
c. Stack
Segment (SS): SS defined the area of memory used for the stack.
d. Extra
Segment (ES): ES is additional data segment that is used by some of the string
to hold the destination data.
Flag Registers of 8086:
Flags
Register determines the current state of the processor. They are modified
automatically by CPU after mathematical operations, this allows to determine
the type of the result, and to determine conditions to transfer control to
other parts of the program. 8086 has 9 flags and they are divided into two
categories:
ü Conditional
Flags
ü Control
Flags
Conditional Flags
Conditional
flags represent result of last arithmetic or logical instruction executed.
Conditional flags are as follows:
ü Carry Flag (CF): This flag indicates an overflow
condition for unsigned integer arithmetic. It is also used in multiple-precision arithmetic.
Auxiliary Flag (AF): If an
operation performed in ALU generates a carry/barrow from lower nibble (i.e. D0 D3) to upper nibble
(i.e. D4 – D7), the AF flag is set i.e. carry given by D3 bit to D4 is AF flag.
This is not a general-purpose flag, it is used internally by the processor to
perform Binary to BCD conversion.
ü Parity Flag (PF): This flag
is used to indicate the parity of result. If lower order 8-bits of the result contains even number of 1‟s,
the Parity Flag is set and for odd number of 1‟s, the Parity Flag is reset.
ü Zero Flag (ZF): It is set; if the result of arithmetic
or logical operation is zero else it is reset.
ü Sign Flag (SF): In sign magnitude format the sign
of number is indicated by MSB bit. If the
result of operation is negative, sign flag is set.
ü Overflow Flag (OF): It occurs
when signed numbers are added or subtracted. An OF indicates that the result has exceeded the
capacity of machine.
Control Flags:
Control
flags are set or reset deliberately to control the operations of the execution
unit. Control flags are as follows:
ü Trap Flag (TP):
a. It is used
for single step control.
b. It allows
user to execute one instruction of a program at a time for debugging.
c. When trap
flag is set, program can be run in single step mode.
ü Interrupt Flag (IF):
a. It is an
interrupt enable/disable flag.
b. If it is
set, the maskable interrupt of 8086 is enabled and if it is reset, the
interrupt is disabled.
c. It can be
set by executing instruction sit and can be cleared by executing CLI
instruction.
ü Direction Flag (DF):
a. It is
used in string operation.
b. If it is
set, string bytes are accessed from higher memory address to lower memory
address.
c. When it
is reset, the string bytes are accessed from lower memory address to higher
memory address.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.