Professional Documents
Culture Documents
Amp Module 1
Amp Module 1
Amp Module 1
MODULE 1
Features of Intel 8086
It is a16 bit microprocessor. It can access 16 bit data at a time
8086 has 20 bit address bus, so it can handle 220 = I MB or 1048576 memory locations
8086 designed to operate in two modes, namely Minimum mode and maximum mode
It consist of 9 flags and fourteen 16 bit registers
It is a N channel HMOS microprocessor
8086 built on a single semiconductor chip and packaged in a 40 pin DIP IC
It supports two stage pipelining ie fetching and executing are in parallel
Clock speed of 8086 – 5MHz,8MHz,10Mhz
It consist of 29000 transistors
It has a powerful instruction set
The internal architecture of Intel 8086 is divided into 2 units: The Bus Interface Unit (BIU), and The
Execution Unit (EU).
Segment registers
8086 has 4 segment registers which are used to hold upper 16 bit starting address of memory segments
Code Segment register: (16 Bit register): CS holds the base address for the Code Segment. All programs are
stored in the Code Segment and accessed via the IP.
Data Segment register: (16 Bit register): DS holds the base address for the Data Segment.
Stack Segment register: (16 Bit register): SS holds the base address for the Stack Segment.
Extra Segment register: (16 Bit register): ES holds the base address for the Extra Segment.
Address Generation Circuit:
The BIU has a Physical Address Generation Circuit.
It generates the 20-bit physical address using Segment and Offset addresses using the formula:
In Bus Interface Unit (BIU) the circuit shown by the Σ symbol is responsible for the calculation unit
which is used to calculate the physical address of an instruction in memory.
8086 has four 16-bit general purpose registers AX, BX, CX, and DX which store intermediate values during
execution. Each of these has two 8-bit parts (higher and lower).
Arithmetic Logic Unit (16-bit): Performs 8 and 16-bit arithmetic and logic operations
8086 has 20 bit address, so it can access 220 =1MB memory location having an address from 00000 to
FFFFFH
Memory data is stored as bytes
Total memory size 1MB is divided in to four segments having 64 kb size each and each having its own
base address
Four segments are
1. Code segment:- it stores the executable program code in the memory
BIU of 8086 microprocessor contains four 16 bit special purpose register called as segment register. That are
1. Code segment register :- holds the upper 16 bit base address of code segment in memory
2. Data segment register: - holds the upper 16 bit base address of data segment in memory.
3. Stack segment register: - holds the upper 16 bit base address of stack segment in memory.
4. Extra segment register:- holds the upper 16 bit base address of extra segment in memory.
A register is a very small amount of fast memory that is built in CPU in order to speed up the operation.
8086 registers are classified into following types
General purpose registers
Segment registers
pointers and index registers
flag registers
i. AX = [AH:AL]
ii. BX = [BH:BL]
iii. CX = [CH:CL]
2) Segment Registers
There are 4 segment registers in 8086 Microprocessor and each of them is of 16 bit. The code and instructions
are stored inside these different segments.
The pointers will always store some address or memory location. In 8086 Microprocessor, they usually store the
offset through which the actual address is calculated.
Flags O D I T S Z AC P CY
We can divide the flag bits into two sections. The Status Flags, and the Control Flags.
Status Flags
In 8086 there are 6 different flags which are set or reset after 8-bit or 16-bit operations. These flags and their
functions are listed below.
S After any operation if the MSB is 1, then it indicates that the number is negative. And this flag is
set to 1
AC When some arithmetic operations generates carry after the lower half and sends it to upper half,
the AC will be 1
P This is even parity flag. When result has even number of 1, it will be set to 1, otherwise 0 for odd
number of 1s
CY This is carry bit. If some operations are generating carry after the operation this flag is set to 1
O The overflow flag is set to 1 when the result of a signed operation is too large to fit.
Control Flags
In 8086 there are 3 different flags which are used to enable or disable some basic operations of the
microprocessor. These flags and their functions are listed below.
D This is directional flag. This is used in string related operations. D = 1, then the string will be
accessed from higher memory address to lower memory address, and if D = 0, it will do the
reverse.
I This is interrupt flag. If I = 1, then MPU will recognize the interrupts from peripherals. For I = 0,
the interrupts will be ignored
T This trap flag is used for on-chip debugging. When T = 1, it will work in a single step mode. After
each instruction, one internal interrupt is generated. It helps to execute some program instruction by
instruction.
Intel 8086 is a 16-bit HMOS microprocessor. It is available in 40 pin DIP chip. It uses a 5V DC supply for its
operation. The 8086 uses a 20-line address bus. It has a 16-line data bus. The 20 lines of the address bus
operate in multiplexed mode. The 16-low order address bus lines have been multiplexed with data and 4 high-
order address bus lines have been multiplexed with status signals.
AD0-AD15: Address/Data bus. These are low order address bus. They are multiplexed with data. When AD
lines are used to transmit memory address the symbol A is used instead of AD, for example A0-A15. When
data are transmitted over AD lines the symbol D is used in place of AD, for example D0-D7, D8-D15 or D0-
D15.
A16-A19: High order address bus. These are multiplexed with status signals
S2, S1, S0: Status pins. These pins are active during T4, T1 and T2 states and is returned to passive state (1,1,1
during T3 or Tw (when ready is inactive). These are used by the 8288 bus controller for generating all the
memory and I/O operation) access control signals. Any change in S2, S1, S0 during T4 indicates the beginning
of a bus cycle.
S2 S1 S0 Characteristics
S2 S1 S0 Characteristics
0 0 0 Interrupt acknowledge
0 1 1 Halt
1 0 0 Code access
1 0 1 Read memory
1 1 0 Write memory
1 1 1 Passive state
A16/S3, A17/S4, A18/S5, A19/S6 : The specified address lines are multiplexed with corresponding status
signals.
A17/S4 A16/S3 Function
HE’/S7: Bus High Enable/Status. During T1 it is low. It is used to enable data onto the most significant half of
data bus, D8-D15. 8-bit device connected to upper half of the data bus use BHE (Active Low) signal. It is
multiplexed with status signal S7. S7 signal is available during T2, T3 and T4.
RD’: This is used for read operation. It is an output signal. It is active when low.
READY : This is the acknowledgement from the memory or slow device that they have completed the data
transfer. The signal made available by the devices is synchronized by the 8284A clock generator to provide
ready input to the microprocessor. The signal is active high(1).
INTR : Interrupt Request. This is triggered input. This is sampled during the last clock cycles of each
instruction for determining the availability of the request. If any interrupt request is found pending, the
processor enters the interrupt acknowledge cycle. This can be internally masked after resulting the interrupt
enable flag. This signal is active high(1) and has been synchronized internally.
0 0 No operation
DT/R : Data Transmit/Receive. This pin is required in minimum systems, that want to use an 8286 or 8287
data bus transceiver. The direction of data flow is controlled through the transceiver.
DEN: Data enable. This pin is provided as an output enable for the 8286/8287 in a minimum system which
uses transceiver. DEN is active low(0) during each memory and input-output access and for INTA cycles.
HOLD/HOLDA: HOLD indicates that another master has been requesting a local bus .This is an active
high(1). The microprocessor receiving the HOLD request will issue HLDA (high) as an acknowledgement in
the middle of a T4 or T1 clock cycle.
ALE : Address Latch Enable. ALE is provided by the microprocessor to latch the address into the 8282 or
8283 address latch. It is an active high(1) pulse during T1 of any bus cycle. ALE signal is never floated, is
always integer.
At T1 state ALE =1 ,this indicates that a valid address is latched on the address bus and also M /
IO’= 1, which indicates the memory operation is in progress.
In T2, the address is removed from the local bus and is sent to the addressed device. Then the bus
is tristated.
When RD’ = 0 , the valid data is present on the data bus.
During T2 DEN’ =0, which enables transceivers and DT/R’ = 0 ,which indicates that the data is
received.
During T3, data is put on the data bus and the processor reads it.
The output device makes the READY line high. This means the output device has performed the
data transfer process. When the processor makes the read signal to 1, then the output device will
again tristate its bus drivers.
The data bus is operated through 8286 8-bit transceiver. Two such transceivers are required, because data
bus is 16-bit. The transceivers are enabled the DEN signal, while the direction of data is controlled by
the DT/R signal. DEN is connected to OE’ and DT/ R’ is connected to T. Both DEN and DT/ R’ are
given by 8288 bus controller.
Control signals for all operations are generated by decoding S’2, S’1 and S’0 using 8288 bus
controller.
Bus request is done using RQ’ / GT’ lines interfaced with 8086. RQ 0/GT0 has more priority than
RQ1/GT1.
INTA’ is given by 8288, in response to an interrupt on INTR line of 8086.
In max mode, the advanced write signals get enabled one T-state in advance as compared to normal write
signals. This gives slower devices more time to get ready to accept the data, therefore it reduces the
number of cycles.