8086 Microprocessor
8086 Microprocessor
UNIT - 3
Architecture of 8086 microprocessor:
Register organization, bus interface unit, execution
unit, memory addressing, and memory segmentation.
Operating modes. Instruction sets, instruction format,
Types of instructions. Interrupts: hardware and
software interrupts.
2
Microprocessor
3
Microprocessor Fifth Generation Pentium
Fourth Generation
During 1980s
Low power version of HMOS technology
(HCMOS)
Third Generation 32 bit processors
During 1978 Physical memory space 224 bytes = 16 Mb
HMOS technology Faster speed, Virtual memory space 240 bytes = 1 Tb
Higher Floating point hardware
16 bit processors 40/ 48/ packing
64 pins Supports increased number of addressing
Easier to program
density modes
Dynamically relatable
programs
Processor has multiply/ divide arithmetic Intel 80386
hardware
More powerful interrupt
handling Second Generation
capabilities During 1973
Flexible I/O port NMOS technology Faster speed, Higher
Intel 8086 (16 bit addressing
processor) density, Compatible with TTL
4 / 8/ 16 bit processors 40 pins
First Generation Ability to address large memory
Between 1971 – 1973 spaces and I/O ports
PMOS technology, non compatible with Greater number of levels of
TTL subroutine nesting
4 bit processors Better interrupt handling capabilities
16 pins 4
8 and 16 bit processors 40 Intel 8085 (8 bit processor)
Microprocessor Functional blocks
6
Pins and
signa ls
8086
Microprocessor Pins and Signals Common signals
AD0-AD15 (Bidirectional)
Address/Data bus
8
8086
Microprocessor Pins and Signals Common signals
MN/ MX
MINIMUM / MAXIMUM
READY
RESET (Input)
13
8086
Microprocessor Pins and Signals Minimum mode signals
15
8086
Microprocessor Pins and Signals Maximum mode signals
16
8086
Microprocessor Pins and Signals Maximum mode signals
17
8086
Microprocessor Pins and Signals Maximum mode signals
18
Architecture
8086
Microprocessor Architecture
Dedicated Adder to
generate 20 bit
address
Segment
Registers
22
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
23
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
24
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
25
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
26
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
27
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
Instruction queue
A group of First-In-First-
Out (FIFO) in which up to
6 bytes of instruction
code are pre fetched
from the memory ahead
of time.
28
8086
Architecture Execution Unit (EU)
Microprocessor
EU decodes and
executes instructions.
A decoder in the EU
control system
translates instructions.
and
Some of the 16 bit registers can be
Index registers (Source used as two 8 bit registers as :
Index, Destination Index)
each of 16-bits AX can be used as AH and AL
BX can be used as BH and BL
CX can be used as CH and CL 29
DX can be used as DH and
8086
Architecture Execution Unit (EU)
Microprocessor
30
8086
Architecture Execution Unit (EU)
Microprocessor
31
8086
Architecture Execution Unit (EU)
Microprocessor
Example:
32
8086
Architecture Execution Unit (EU)
Microprocessor
EU
Registers
33
8086
Architecture Execution Unit (EU)
Microprocessor
34
8086
Architecture Execution Unit (EU)
Microprocessor
35
8086
Architecture Execution Unit (EU)
Microprocessor
36
8086
Architecture Execution Unit (EU)
Microprocessor
Auxiliary Carry Flag
Carry Flag
Flag Register This is set, if there is a carry from the
This flag is set, when there is
lowest nibble, i.e, bit three during
addition, or borrow for the lowest a carry out of MSB in case of
nibble, i.e, bit three, during addition or a borrow in case
subtraction. of subtraction.
This flag is set, when the This flag is set, if the result of This flag is set to 1, if the lower
result of any computation the computation or comparison byte of the result contains even
is negative performed by an instruction is number of 1’s ; for odd number of
zero 1’s set to zero.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF
PF CF
Tarp Flag
Over flow Flag If this flag is set, the processor
This flag is set, if an overflow occurs, i.e, if the result of a signed
enters the single step execution
operation is large enough to accommodate in a destination
mode by generating internal
register. The result is of more than 7-bits in size in case of 8-bit
signed operation and more than 15-bits in size in case of 16-bit interrupts after the execution of
sign operations, then the overflow will be set. each instruction
8086 registers
categorized 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
into 4 groups OF DF IF TF SF ZF AF PF CF
Program
A set of instructions written to solve
a problem.
Instruction
Directions which a microprocessor
follows to execute a task or part of a
task.
Computer language
1. Register Addressing
Group I : Addressing modes for
2. Immediate Addressing register and immediate
data
3. Direct Addressing
5. Based Addressing
Group II : Addressing modes for
6. Indexed Addressing memory data
7. Based Index Addressing
8. String Addressing
45
8086 Group I : Addressing modes for
Microprocessor Addressing Modes register and immediate
data
1. Register
Addressing In immediate addressing mode, an 8-bit or 16-bit
2. Immediate Addressing data is specified as part of the instruction
3. Direct Addressing
Example:
4. Register Indirect Addressing
MOV DL, 08H
5. Based Addressing
The 8-bit data (08H) given in the instruction is
6. Indexed Addressing moved to DL
8. String Addressing
MOV AX, 0A9FH
9. Direct I/O port Addressing
The 16-bit data (0A9FH) given in the instruction is
10. Indirect I/O port Addressing
moved to AX register
11. Relative Addressing
(AX) 0A9FH
12. Implied Addressing
46
8086
Microprocessor Addressing Modes : Memory Access
1. Register
Addressing
2. Immediate
Addressing
Here, the effective address of the memory
3. Direct Addressing
location at which the data operand is stored is
4. Register Indirect Addressing given in the instruction.
12. Implied Addressing This addressing mode is called direct because the
displacement of the operand from the segment
base is specified directly in the instruction.
50
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
(AX) (MA)
or,
(AL) (MA)
52
(AH) (MA + 1)
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
54
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
(AX)
Content of AX is 56
moved to port
8086 Group IV : Relative
Microprocessor Addressing Modes Addressing
mode
1. Register
Addressing
2. Immediate
Addressing In this addressing mode, the effective address of
a program instruction is specified relative to
3.
4. Direct Addressing
Register Indirect Addressing Instruction Pointer (IP) by an 8-bit
signed
displacement.
5. Based Addressing
Example: JZ 0AH
6. Indexed Addressing
1. Register
Addressing
2. Immediate
Addressing
3.
4. Direct Addressing
Register Indirect Addressing
5. Based Addressing
6. Indexed Addressing
Instructions using this mode have no operands.
7. Based Index Addressing
The instruction itself will specify the data to be
operated by the instruction.
8. String Addressing
Example: CLC
9. Direct I/O port Addressing
This clears the carry flag to zero.
10. Indirect I/O port Addressing
58
INSTRUCTION
SET
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
3. Logical Instructions
60
8086
Microprocessor Instruction Set
61
8086
Microprocessor Instruction Set
62
8086
Microprocessor Instruction Set
PUSH mem
(SP) (SP) – 2
MA S = (SS) x 1610 + SP
(MA S ; MA S + 1)
(mem)
POP reg16/ mem
addr8 AX
64
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
ADD A, data
65
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
ADDC A, data
66
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
SUB A, data
67
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
SBB A, data
68
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
69
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
70
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
71
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
72
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
73
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
74
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
CMP A, data
75
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
76
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
77
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
78
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
79
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
80
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
81
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
82
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
83
8086
Microprocessor Instruction Set
84
8086
Microprocessor Instruction Set
REP
85
8086
Microprocessor Instruction Set
MOVS
(MAE) (MA)
86
8086
Microprocessor Instruction Set
CMPS
87
8086
Microprocessor Instruction Set
LODS
89
8086
Microprocessor Instruction Set
STOS
90
8086
Microprocessor Instruction Set
CLC Clear CF 0
NOP No operation
Mnemonics Explanation
CALL reg/ mem/ disp16 Call subroutine
92
8086
Microprocessor Instruction Set
Checks flags
93
8086
Microprocessor Instruction Set
Mnemonics Explanation
JC disp8 Jump if CF = 1
JP disp8 Jump if PF = 1
JO disp8 Jump if OF = 1
JS disp8 Jump if SF = 1
95
Assembler directive
s
8086
Microprocessor Assemble Directives
Used to :
› specify the start and end of a
program
› attach value to variables
› allocate storage locations to
input/ output data
› define start and end of
segments, procedures, macros
etc..
97
8086
Microprocessor Assemble Directives
DB Define Byte
PROC
FAR Example:
NEAR LIST DB 7FH, 42H, 35H
DB Define Word
PROC
FAR Example:
NEAR ALIST DW 6512H, 0F251H, 0CDE2H
ORG
END Segnam SEGMENT
EVEN
…
EQU … Program code
… or
PROC … Data Defining
… Statements
FAR …
NEAR
Segnam ENDS
ENDP
SHORT
ORG
User defined name of
END Segment Register
the segment
EVEN
EQU
PROC Example:
FAR
NEAR ASSUME CS: ACODE, DS:ADATA Tells the compiler that the
instructions of the program are
stored in the segment ACODE and
ENDP data are stored in the segment
SHORT ADATA
MACRO
ENDM 101
8086
Microprocessor Assemble Directives
ORG
Examples:
END
EVEN ORG 1000H Informs the assembler that the statements
EQU following ORG 1000H should be stored in
memory starting with effective address
1000H
PROC
FAR
LOOP EQU 10FEH Value of variable LOOP is 10FEH
NEAR
General form
ASSUME
ORG
procname PROC[NEAR/ FAR]
END
EVEN …
… Program statements of the
EQU procedure
…
DB
Examples:
DW
RET
ORG
ADD64 ENDP
END
EVEN
EQU CONVERT PROC FAR The subroutine/ procedure named CONVERT
is declared as FAR and so the assembler will
… code the CALL and RET instructions involved
PROC … in this procedure as far call and return
…
ENDP
RET
FAR CONVERT ENDP
NEAR
SHO
RT
MACRO
ENDM 104
8086
Microprocessor Assemble Directives
PROC
ENDP
FAR
NEAR
SHORT
MACRO
ENDM 105
8086
Microprocessor Assemble Directives
PROC
MACRO
ENDM 106
107
Interfacingmemory and
i/o ports
8086
Microprocessor Memory
Processor Memory
Registers inside a microcomputer
Store data and results temporarily
No speed disparity
Cost
Secondary Memory
Storage media comprising of slow
devices such as magnetic tapes and
disks
Hold large data files and programs:
Operating system, compilers,
databases, permanent programs etc. 109
8086
Microprocessor Memory organization in 8086
110
8086
Microprocessor Memory organization in 8086
112
8086
Microprocessor Interfacing SRAM and EPROM
113
8086
Microprocessor Interfacing SRAM and EPROM
114
8086
Microprocessor Interfacing SRAM and EPROM
115
8086
Microprocessor Interfacing SRAM and EPROM
Monitor Programs
Programing 8279 for keyboard scanning and display
refreshing
Initialization of stack
116
8086
Microprocessor Interfacing I/O and peripheral devices
I/O devices
For communication between microprocessor and
outside world
Interrupt driven I/ O
I/O device interrupts the
processor and initiate data
transfer
Direct memory access
Data transfer is achieved by 117
bypassing the microprocessor
8086
Microprocessor 8086 and 8088 comparison
The I/O ports or peripherals can be Only IN and OUT instructions can be
treated like memory locations and used for data transfer between I/O
so all instructions related to device and processor
memory can be used for data
transmission between I/O device
and processor
Data can be moved from any Data transfer takes place only
register to ports and vice versa between accumulator and ports
When memory mapping is used for Full memory space can be used for
I/O devices, full memory address addressing memory.
space cannot be used for
addressing memory. Suitable for systems which
require large memory capacity
Useful only for small systems
where memory requirement is less
118
8086 and 8088
comparison
8086
Microprocessor 8086 and 8088 comparison
8086 8088
16-bit Data bus lines obtained by 8-bit Data bus lines obtained by
demultiplexing AD0 – AD15 demultiplexing AD0 – AD7
122
8086
Microprocessor Co-processor – Intel 8087
123
8086
Microprocessor Co-processor – Intel 8087
124
8086
Microprocessor Co-processor – Intel 8087
BUSY
125
8086
Microprocessor Co-processor – Intel 8087
126
8086
Microprocessor Co-processor – Intel 8087
INT
127
8086
Microprocessor Co-processor – Intel 8087
Status
1 0 0 Unused
1 0 1 Read memory
1 1 0 Write memory
1 1 1 Passive
QS0 – QS1
0 0 No operation
0 1 First byte of opcode
from queue
1 0 Queue empty
1 1 Subsequent byte of
opcode from
queue
128
8086
Microprocessor Co-processor – Intel 8087
129
Ref: Microprocessor, Atul P. Godse, Deepali A. Gode, Technical publications, Chap 11
8086
Microprocessor Co-processor – Intel 8087
Wake up the
coprocessor
Monitor
ESC 8086/
8088
Deactivate the
Execute the host‟s TEST pin
8086 and execute the
instructions specific
operation
Activate
WAIT the TEST
pin
Wake up the
8086/
8088 130
131