Home Microprocessor Computer Fundamentals Computer Network Java HTML CSS
Home Microprocessor Computer Fundamentals Computer Network Java HTML CSS
8086 microprocessor
Intel 8086
Intel 8086 uses 20 address lines and 16 data- lines. It can directly address up to 220 = 1
Mbyte of memory.
It consists of a powerful instruction set, which provides operation like division and
multiplication very quickly.
8086 is designed to operate in two modes, i.e., Minimum and Maximum mode.
The Clock speed of this microprocessor is 3 The Clock speed of this microprocessor
MHz. varies between 5, 8 and 10 MHz for
different versions.
In 8085, only one processor is used. In 8086, more than one processor is used.
An additional external processor can also
be employed.
AD0-AD15 (Address Data Bus): Bidirectional address/data lines. These are low order
address bus. They are multiplexed with data.
When these lines are used to transmit memory address, the symbol A is used instead of AD,
for example, A0- A15.
A16 - A19 (Output): High order address lines. These are multiplexed with status signals.
A16/S3, A17/S4: A16 and A17 are multiplexed with segment identifier signals S3 and S4.
Ready (Input): The addressed memory or I/O sends acknowledgment through this pin.
When HIGH, it denotes that the peripheral is ready to transfer data.
TEST (Input): Wait for test control. When LOW the microprocessor continues execution
otherwise waits.
GND: Ground.
When only one 8086 CPU is to be used in a microprocessor system, the 8086 is used in the
Minimum mode of operation.
In this minimum mode of operation, the pin MN/MX is connected to 5V D.C. supply i.e.
MN/MX = VCC.
The description about the pins from 24 to 31 for the minimum mode is as follows:
INTA (Output): Pin number 24 interrupts acknowledgement. On receiving interrupt signal,
the processor issues an interrupt acknowledgment signal. It is active LOW.
ALE (Output): Pin no. 25. Address latch enable. It goes HIGH during T1. The microprocessor
8086 sends this signal to latch the address into the Intel 8282/8283 latch.
DEN (Output): Pin no. 26. Data Enable. When Intel 8287/8286 octal bus transceiver is used
this signal. It is active LOW.
DT/R (output): Pin No. 27 data Transmit/Receives. When Intel 8287/8286 octal bus
transceiver is used this signal controls the direction of data flow through the transceiver.
When it is HIGH, data is sent out. When it is LOW, data is received.
M/IO (Output): Pin no. 28, Memory or I/O access. When this signal is HIGH, the CPU wants
to access memory. When this signal is LOW, the CPU wants to access I/O device.
WR (Output): Pin no. 29, Write. When this signal is LOW, the CPU performs memory or I/O
write operation.
HLDA (Output): Pin no. 30, Hold Acknowledgment. It is sent by the processor when it
receives HOLD signal. It is active HIGH signal. When HOLD is removed HLDA goes LOW.
HOLD (Input): Pin no. 31, Hold. When another device in microcomputer system wants to use
the address and data bus, it sends HOLD request to CPU through this pin. It is an active
HIGH signal.
In the maximum mode of operation, the pin MN/�MX is made LOW. It is grounded. The
description about the pins from 24 to 31 is as follows:
QS1, QS0 (Output): Pin numbers 24, 25, Instruction Queue Status. Logics are given below:
0 0 No operation
S0, S1, S2 (Output): Pin numbers 26, 27, 28 Status Signals. These signals are connected to
the bus controller of Intel 8288. This bus controller generates memory and I/O access
control signals. Logics for status signal are given below:
S2 S1 S0 Operation
0 0 0 Interrupt acknowledgement
0 1 1 Halt
1 0 0 Opcode fetch
1 0 1 Memory read
1 1 0 Memory write
1 1 1 Passive state
LOCK (Output): Pin no. 29. It is an active LOW signal. When this signal is LOW, all interrupts
are masked and no HOLD request is granted. In a multiprocessor system all other
processors are informed through this signal that they should not ask the CPU for
relinquishing the bus control.
RG/GT1, RQ/GT0 (Bidirectional): Pin numbers 30, 31, Local Bus Priority Control. Other
processors ask the CPU by these lines to release the local bus.
In the maximum mode of operation signals WR, ALE, DEN, DT/R etc. are not available directly
from the processor. These signals are available from the controller 8288.
The segment registers, instruction pointer and 6-byte instruction queue are associated with
the bus interface unit (BIU).
The BIU:
Instruction Queue: When EU executes instructions, the BIU gets 6-bytes of the next
instruction and stores them in the instruction queue and this process is known as
instruction pre fetch. This process increases the speed of the processor.
Data Segment Register (DS): The data, variables and constants given in the
program are held in the data segment of the memory.
Stack Segment Register (SS): Stack segment holds addresses and data of
subroutines. It also holds the contents of registers and memory locations given
in PUSH instruction.
Extra Segment Register (ES): Extra segment holds the destination addresses of
some data of certain string instructions.
Instruction Pointer (IP): The instruction pointer in the 8086 microprocessor acts as a
program counter. It indicates to the address of the next instruction to be executed.
The EU receives opcode of an instruction from the queue, decodes it and then
executes it. While Execution, unit decodes or executes an instruction, then the BIU
fetches instruction codes from the memory and stores them in the queue.
The BIU and EU operate in parallel independently. This makes processing faster.
General purpose registers, stack pointer, base pointer and index registers, ALU, flag
registers (FLAGS), instruction decoder and timing and control unit constitute execution
unit (EU). Let's discuss them:
General Purpose Registers: There are four 16-bit general purpose registers: AX
(Accumulator Register), BX (Base Register), CX (Counter) and DX. Each of these 16-bit
registers are further subdivided into 8-bit registers as shown below:
AX AH AL
BX BH BL
CX CH CL
DX DH DL
Index Register: The following four registers are in the group of pointer and index
registers:
Stack Pointer (SP)
ALU: It handles all arithmetic and logical operations. Such as addition, subtraction,
multiplication, division, AND, OR, NOT operations.
Flag Register: It is a 16?bit register which exactly behaves like a flip-flop, means it
changes states according to the result stored in the accumulator. It has 9 flags and
they are divided into 2 groups i.e. conditional and control flags.
Conditional Flags: This flag represents the result of the last arithmetic or
logical instruction executed. Conditional flags are:
Carry Flag
Auxiliary Flag
Parity Flag
Zero Flag
Sign Flag
Overflow Flag
Control Flags: It controls the operations of the execution unit. Control flags are:
Trap Flag
Interrupt Flag
Direction Flag
Interrupts
Interrupt is a process of creating a temporary halt during program execution and allows
peripheral devices to access the microprocessor.
Microprocessor responds to these interrupts with an interrupt service routine (ISR), which
is a short program or subroutine to instruct the microprocessor on how to handle the
interrupt.
Hardware Interrupts
Hardware interrupts are that type of interrupt which are caused by any peripheral device
by sending a signal through a specified pin to the microprocessor.
INTR: The INTR is a maskable interrupt. It can be enabled/disabled using interrupt flag (IF).
After receiving INTR from external device, the 8086 acknowledges through INTA signal.
Software Interrupt
The interrupt caused by an internal abnormal conditions also came under the heading of
software interrupt.
1KB memory acts as a table to contain interrupt vectors (or interrupt pointers), and it is
called interrupt vector table or interrupt pointer table. The 256 interrupt pointers have been
numbered from 0 to 255 (FF hex). The number assigned to an interrupt pointer is known as
type of that interrupt. For example, Type 0, Type 1, Type 2,...........Type 255 interrupt.
The 8086 microprocessors have 8 addressing modes. Two addressing modes have been
provided for instructions which operate on register or immediate data.
These two addressing modes are:
Register Addressing: In register addressing, the operand is placed in one of the 16-bit or 8-
bit general purpose registers.
Example
MOV AX, CX
ADD AL, BL
ADD CX, DX
Example
The remaining 6 addressing modes specify the location of an operand which is placed in a
memory.
Direct Addressing: In direct addressing mode, the operand?s offset is given in the
instruction as an 8-bit or 16-bit displacement element.
Example
The instruction adds the content of the offset address 0301 to AL. the operand is placed at
the given offset (0301) within the data segment DS.
Register Indirect Addressing: The operand's offset is placed in any one of the registers BX,
BP, SI or DI as specified in the instruction.
Example
It moves the contents of memory locations addressed by the register BX to the register AX.
Based Addressing: The operand's offset is the sum of an 8-bit or 16-bit displacement and
the contents of the base register BX or BP. BX is used as base register for data segment, and
the BP is used as a base register for stack segment.
Example
Indexed Addressing: The offset of an operand is the sum of the content of an index register
SI or DI and an 8-bit or 16-bit displacement.
Example
Based Indexed Addressing: The offset of operand is the sum of the content of a base
register BX or BP and an index register SI or DI.
Here, BX is used for a base register for data segment, and BP is used as a base register for
stack segment.
Example
Effective Address (Offset) = [BX or BP] + [SI or DI] + 8-bit or 16-bit displacement
Example
← Prev Next →
Feedback
Preparation
Company
Interview
Questions
Company Questions
Trending Technologies
B.Tech / MCA