Professional Documents
Culture Documents
)
It is a 16 bit p.
8086 has a 20 bit address bus can access upto 220 memory
locations ( 1 MB) .
It can support upto 64K I/O ports.
It provides 14, 16-bit registers.
It has multiplexed address and data bus AD0- AD15
and A16 A19.
M. Krishna Kumar
MM/M1/LU3/V1/2004
M. Krishna Kumar
MM/M1/LU3/V1/2004
M. Krishna Kumar
MM/M1/LU3/V1/2004
AH
AL
BH
BL
CH
CL
DH
DL
ADDRESS BUS
( 20 )
BITS
SP
DATA BUS
BP
( 16 )
BITS
SI
DI
ES
CS
SS
DS
ALU DATA BUS
IP
16 BITS
0
BUS
6
CONTROL
LOGIC
B
U
S
TEMPORARY REGISTERS
EU
CONTROL
Q BUS
SYSTEM
ALU
INSTRUCTION QUEUE
1
8 BIT
FLAGS
( BIU)
EXECUTION UNIT ( EU )
Fig:
M. Krishna Kumar
MM/M1/LU3/V1/2004
40
VCC
39
AD15
38
A16 / S3
AD12
2
3
4
37
AD11
A17 / S4
36
AD10
35
AD9
AD8
AD7
34
AD13
8086
AD6
10
AD5
11
AD4
12
AD3
13
AD2
14
AD1
15
AD0
31
_____
BHE / S7
____
33
32
CPU
A19/S6
MN/MX
___
RD
___
_____
_____RQ
_____
/ GT0 ( HOLD)
30
( HLDA)
RQ
/ GT
___1
_______
29
LOCK (WR)
28
___
___
S
1
___
(DT
/ R)
_____
S0
(DEN)
16
27
26
25
17
24
QS1 (INTA)
INTR
18
23
CLK
19
22
GND
20
21
NMI
M. Krishna Kumar
A18 / S5
MM/M1/LU3/V1/2004
________
____
S2
____
(M / IO )
QS0 (ALE)
______
TEST
READY
RESET
VCC
GND
A0 - A15, A16 / S3 A19/S6
INTR
_____
INTA
INTERRUPT
______
INTERFACE
TEST
NMI
D0 - D15
8086
ALE
___
MPU
RESET
BHE / S7
__
HOLD
DMA
HLDA
INTERFACE
MEMORY
I/O
M / IO
CONTROLS
RD
MN / MX
DT / R
_____
WR
VCC
____
____
__
_____
DEN
MODE
SELECT
READY
CLK
M. Krishna Kumar
MM/M1/LU3/V1/2004
M. Krishna Kumar
MM/M1/LU3/V1/2004
M. Krishna Kumar
MM/M1/LU3/V1/2004
M. Krishna Kumar
MM/M1/LU3/V1/2004
M. Krishna Kumar
MM/M1/LU3/V1/2004
10
M. Krishna Kumar
MM/M1/LU3/V1/2004
11
M. Krishna Kumar
MM/M1/LU3/V1/2004
12
M. Krishna Kumar
MM/M1/LU3/V1/2004
13
M. Krishna Kumar
MM/M1/LU3/V1/2004
14
Function
AD 15 AD 0
A19 / S 6 A 16 / S 3
BHE
/S7
MN / MX
RD
Output
3- State
Input
Output 3- State
TEST
Input
READY
Input
RESET
NMI
INTR
CLK
Vcc
GND
M. Krishna Kumar
Address / Status
Type
Bidirectional
3 - state
Output 3 - State
System Reset
Non - Maskable
Interrupt Request
Interrupt Request
System Clock
+ 5V
Ground
MM/M1/LU3/V1/2004
Input
Input
Input
Input
Input
15
Function
Hold Request
Hold Acknowledge
Type
Input
Output
WR
Write Control
Output,
3-- state
M/IO
Memory or IO Control
Output,
3-State
Output,
3- State
DT/R
Data Transmit /
Receiver
DEN
Date Enable
Output
,
3-State
ALE
Output
INTA
M. Krishna Kumar
( MN/ MX = Vcc )
Interrupt Acknowledge
MM/M1/LU3/V1/2004
Output
16
M. Krishna Kumar
Function
Type
Bidirectional
Output,
3- State
Output,
3- State
MM/M1/LU3/V1/2004
Output
17
MM/M1/LU3/V1/2004
18
M. Krishna Kumar
MM/M1/LU3/V1/2004
19
GND
INTR
A0-A15,A16/S3 A19/S6
INTA
Interrupt
interface
NMI
8086
RESET
MPU
ALE
BHE / S7
M / IO
HOLD
DMA
interface
DT / R
Memory
I/O controls
RD
HLDA
WR
Vcc
DEN
Mode select
READY
MN / MX
CLK clock
M. Krishna Kumar
20
M. Krishna Kumar
MM/M1/LU3/V1/2004
21
S3
Segment Register
Extra
Stack
Code / none
Data
M. Krishna Kumar
MM/M1/LU3/V1/2004
22
M. Krishna Kumar
MM/M1/LU3/V1/2004
23
M. Krishna Kumar
MM/M1/LU3/V1/2004
24
MM/M1/LU3/V1/2004
25
M. Krishna Kumar
MM/M1/LU3/V1/2004
26
M. Krishna Kumar
MM/M1/LU3/V1/2004
27
MM/M1/LU3/V1/2004
28
M. Krishna Kumar
MM/M1/LU3/V1/2004
29
M. Krishna Kumar
MM/M1/LU3/V1/2004
30
M. Krishna Kumar
MM/M1/LU3/V1/2004
31
M. Krishna Kumar
MM/M1/LU3/V1/2004
32
INIT
S0
S1
S2
LOCK
CLK
CRQLCK
RESB
SYSB/RESB
ANYREQ
AEN
Vcc GND
INTR
LOCK
TEST
NMI
CLK
S0
S2
RESET
8289 Bus
arbiter
MN/MX
BPRN
BCLK
DEN
DT/ R
ALE
8086 MPU
Multi Bus
BREQ
S1
BUSY
CBRQ
BPRO
MRDC
AMWC
MWTC
IORC
IOWC
AIOWC
INTA
MCE / PDEN
DEN
DT / R
ALE
A0-A15,
A16/S3-A19/S6
D0 D15
BHE
RD
READY
QS1, QS0
RQ / GT0
M. Krishna Kumar
33
MM/M1/LU3/V1/2004
34
CPU Cycles
S2
S1
S0
0
0
0
0
0
0
1
1
0
1
0
1
Interrupt Acknowledge
Instruction Fetch
Read Memory
1
1
Write Memory
Passive
8288
Command
INTA
IORC
IOWC, AIOWC
None
MRDC
MRDC
MWTC, AMWC
None
M. Krishna Kumar
MM/M1/LU3/V1/2004
35
MM/M1/LU3/V1/2004
36
M. Krishna Kumar
MM/M1/LU3/V1/2004
37
M. Krishna Kumar
MM/M1/LU3/V1/2004
38
M. Krishna Kumar
MM/M1/LU3/V1/2004
39
QS0
0 (low)
1 (high)
1
0
1
Queue Status
No Operation. During the last clock cycle, nothing was
taken from the queue.
First Byte. The byte taken from the queue was the first
byte of the instruction.
Queue Empty. The queue has been reinitialized as a result
of the execution of a transfer instruction.
Subsequent Byte. The byte taken from the queue was a
subsequent byte of the instruction.
M. Krishna Kumar
MM/M1/LU3/V1/2004
40
M. Krishna Kumar
MM/M1/LU3/V1/2004
41
MM/M1/LU3/V1/2004
42
M. Krishna Kumar
MM/M1/LU3/V1/2004
43
M. Krishna Kumar
MM/M1/LU3/V1/2004
44
M. Krishna Kumar
MM/M1/LU3/V1/2004
45
MM/M1/LU3/V1/2004
46
MM/M1/LU3/V1/2004
47
MM/M1/LU3/V1/2004
48
RD
WR
0
1
1
0
1
0
1
Transfer Type
I / O read
I/O write
Memory read
Memory write
M. Krishna Kumar
MM/M1/LU3/V1/2004
49
T2
T3
TW
T4
ALE
ADD / STATUS
ADD / DATA
BHE
A19 A16
A15 A0
S7 S3
Bus reserved
for data in
D15 D0
RD
DEN
DT / R
MM/M1/LU3/V1/2004
50
T2
T3
TW
T4
T1
Clk
ALE
ADD / STATUS
BHE
A19 A16
S7 S3
ADD / DATA
A15 A0
WR
DEN
DT / R
MM/M1/LU3/V1/2004
51
MM/M1/LU3/V1/2004
52
HOLD
HLDA
M. Krishna Kumar
MM/M1/LU3/V1/2004
53
M. Krishna Kumar
MM/M1/LU3/V1/2004
54
M. Krishna Kumar
MM/M1/LU3/V1/2004
55
M. Krishna Kumar
MM/M1/LU3/V1/2004
56
M. Krishna Kumar
MM/M1/LU3/V1/2004
57
M. Krishna Kumar
MM/M1/LU3/V1/2004
58
Reset
Clk
Generator
RDY 8284
DEN
DT/ R
S1
IORC
8288
IOWTC
S2
MWTC
AEN
IOB
CEN ALE MRDC
S0
S1
S2
Reset
Clk
Ready
+ 5V
8086
AD6-AD15
A16-A19
CLK
A/D
Latches
Address bus
DIR
Data
buffer
BHE A0
Add bus
DT/R
DEN
Control bus
CS0H CS0L RD
WR
Memory
CS WR RD
Peripherals
Data bus
MM/M1/LU3/V1/2004
59
M. Krishna Kumar
MM/M1/LU3/V1/2004
60
M. Krishna Kumar
MM/M1/LU3/V1/2004
61
M. Krishna Kumar
MM/M1/LU3/V1/2004
62
T2
T1
Clk
AL
E
S2 S0
Add/Status
Add/Data
Inactive
Active
BHE, A19 A16
Active
S7 S3
A15 A0
D15 D0
MRDC
DT / R
DEN
MM/M1/LU3/V1/2004
63
T2
T1
Clk
ALE
S2 S0
Inactive
Active
ADD/STATUS
BHE
ADD/DATA
A15-A0
Active
S7 S3
Data out D15 D0
AMWC or
AIOWC
MWTC or IOWC
high
DT / R
DEN
MM/M1/LU3/V1/2004
64
RQ / GT
Another master
request bus access
M. Krishna Kumar
MM/M1/LU3/V1/2004
65
M. Krishna Kumar
MM/M1/LU3/V1/2004
66
MM/M1/LU3/V1/2004
67
MM/M1/LU3/V1/2004
68
M. Krishna Kumar
MM/M1/LU3/V1/2004
69
MM/M1/LU3/V1/2004
70
MM/M1/LU3/V1/2004
71
MM/M1/LU3/V1/2004
72
M. Krishna Kumar
MM/M1/LU3/V1/2004
73
MM/M1/LU3/V1/2004
74
M. Krishna Kumar
MM/M1/LU3/V1/2004
75
MM/M1/LU3/V1/2004
76
Addressing Modes
Indexed :- 8-bit or 16-bit instruction operand is added to
the contents of an index register (SI or DI), the resulting
value is a pointer to location where data resides.
Based Indexed :- the contents of a base register (BX or
BP) is added to the contents of an index register (SI or DI),
the resulting value is a pointer to location where data
resides.
Based Indexed with displacement :- 8-bit or 16-bit
instruction operand is added to the contents of a base
register (BX or BP) and index register (SI or DI), the
resulting value is a pointer to location where data resides.
M. Krishna Kumar
MM/M1/LU3/V1/2004
77
Memory (cont..)
Program, data and stack memories occupy the same
memory space. As the most of the processor instructions
use 16-bit pointers the processor can effectively address
only 64 KB of memory.
To access memory outside of 64 KB the CPU uses special
segment registers to specify where the code, stack and data
64 KB segments are positioned within 1 MB of memory
(see the "Registers" section below).
16-bit pointers and data are stored as:
address: low-order byte
address+1: high-order byte
M. Krishna Kumar
MM/M1/LU3/V1/2004
78
Memory (cont..)
32-bit addresses are stored in "segment: offset" format as:
address: low-order byte of segment
address+1: high-order byte of segment
address+2: low-order byte of offset
address+3: high-order byte of offset
Physical memory address pointed by segment: offset pair
is calculated as:
address = (<segment> * 16) + <offset>
M. Krishna Kumar
MM/M1/LU3/V1/2004
79
Memory (cont..)
Program memory - program can be located anywhere in
memory. Jump and call instructions can be used for short
jumps within currently selected 64 KB code segment, as
well as for far jumps anywhere within 1 MB of memory.
All conditional jump instructions can be used to jump
within approximately +127 to -127 bytes from current
instruction.
Data memory - the processor can access data in any one
out of 4 available segments, which limits the size of
accessible memory to 256 KB (if all four segments point to
different 64 KB blocks).
M. Krishna Kumar
MM/M1/LU3/V1/2004
80
Memory (cont..)
Accessing data from the Data, Code, Stack or Extra
segments can be usually done by prefixing instructions
with the DS:, CS:, SS: or ES: (some registers and
instructions by default may use the ES or SS segments
instead of DS segment).
Word data can be located at odd or even byte boundaries.
The processor uses two memory accesses to read 16-bit
word located at odd byte boundaries. Reading word data
from even byte boundaries requires only one memory
access.
M. Krishna Kumar
MM/M1/LU3/V1/2004
81
Memory
Stack memory can be placed anywhere in memory. The
stack can be located at odd memory addresses, but it is not
recommended for performance reasons (see "Data
Memory" above).
Reserved locations:
0000h - 03FFh are reserved for interrupt vectors. Each
interrupt vector is a 32-bit pointer in format segment:
offset.
FFFF0h - FFFFFh - after RESET the processor always
starts program execution at the FFFF0h address.
M. Krishna Kumar
MM/M1/LU3/V1/2004
82
Interrupts (cont..)
The processor has the following interrupts:
INTR is a maskable hardware interrupt. The interrupt can
be enabled/disabled using STI/CLI instructions or using
more complicated method of updating the FLAGS register
with the help of the POPF instruction.
When an interrupt occurs, the processor stores FLAGS
register into stack, disables further interrupts, fetches from
the bus one byte representing interrupt type, and jumps to
interrupt processing routine address of which is stored in
location 4 * <interrupt type>. Interrupt processing routine
should return with the IRET instruction.
M. Krishna Kumar
MM/M1/LU3/V1/2004
83
Interrupts (cont..)
NMI is a non-maskable interrupt. Interrupt is processed in
the same way as the INTR interrupt. Interrupt type of the
NMI is 2, i.e. the address of the NMI processing routine is
stored in location 0008h. This interrupt has higher priority
then the maskable interrupt.
Software interrupts can be caused by:
INT instruction - breakpoint interrupt. This is a type 3
interrupt.
INT <interrupt number> instruction - any one interrupt
from available 256 interrupts.
INTO instruction - interrupt on overflow
M. Krishna Kumar
MM/M1/LU3/V1/2004
84
Interrupts
Single-step interrupt - generated if the TF flag is set. This
is a type 1 interrupt. When the CPU processes this
interrupt it clears TF flag before calling the interrupt
processing routine.
Processor exceptions: Divide Error (Type 0), Unused
Opcode (type 6) and Escape opcode (type 7).
Software interrupt processing is the same as for the
hardware interrupts.
M. Krishna Kumar
MM/M1/LU3/V1/2004
85