Co1 2
Co1 2
Microprocessor
2
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, Higher Virtual memory space 240 bytes = 1 Tb
packing density Floating point hardware
16 bit processors 40/ 48/ 64 pins Supports increased number of addressing
Easier to program modes
Dynamically relatable programs
Processor has multiply/ divide arithmetic Intel 80386
hardware
More powerful interrupt handling
capabilities Second Generation
Flexible I/O port addressing During 1973
NMOS technology Faster speed, Higher
Intel 8086 (16 bit processor) density, Compatible with TTL
4 / 8/ 16 bit processors 40 pins
First Generation Ability to address large memory spaces
Between 1971 – 1973 and I/O ports
PMOS technology, non compatible with TTL Greater number of levels of subroutine
4 bit processors 16 pins nesting
8 and 16 bit processors 40 pins Better interrupt handling capabilities
Due to limitations of pins, signals are 3
multiplexed Intel 8085 (8 bit processor)
The Intel x86 Microprocessors
Processor Year Clock Address Data Bus Max Cache
Bus Memory
8080 1974 2 MHz 16 bits 8 bits 64KB --
8085 1976 5 MHz 16 bits 8 bits 64KB --
8086 1978 5 – 10 MHz 20 bits 16 bits 1 MB --
8088 1979 5 – 10 MHz 20 bits 8+8 bits 1 MB --
80386DX 1985 16 – 33 MHz 32 bits 32 bits 4 GB --
80486DX 1989 25 – 50 MHz 32 bits 32 bits 4 GB --
Pentium 1993 60 – 200 MHz 32 bits 64 bits 64 GB 16KB L1
PentiumPr 1995 166 – 300 36 bits 64 bits 64 GB 16KB L1
o MHz
Pentium II 1997 200 – 450 36 bits 64 bits 64 GB 32KB L1
MHz
Pentium 1999 0.5 – 1 GHz 36 bits 64 bits 64 GB 32KB L1
III 256KB L2
Pentium 4 2000 1 – 2 GHz 36 bits 64 bits 64 GB 64KB L1
1MB L2
4
The Intel x86 Microprocessors
Processor Year Clock Address Data Bus Max Cache
Bus Memory
7
Architecture
8086
Microprocessor Architecture
Instruction queue
A group of First-In-First-
Out (FIFO) 1-byte
registers in which up to 6
bytes of instruction code
are pre-fetched from the
memory ahead of time.
10
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
Dedicated Adder to
generate 20 bit address
Segment
Registers
12
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
13
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
16-bit
14
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
15
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
16-bit
16
8086
Architecture Bus Interface Unit (BIU)
Microprocessor
17
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 18
DX can be used as DH and DL
8086
Architecture Execution Unit (EU)
Microprocessor
19
8086
Architecture Execution Unit (EU)
Microprocessor
20
8086
Architecture Execution Unit (EU)
Microprocessor
Example:
21
8086
Architecture Execution Unit (EU)
Microprocessor
22
8086
Architecture Execution Unit (EU)
Microprocessor
23
8086
Architecture Execution Unit (EU)
Microprocessor
24
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 of
subtraction. 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
zero of 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
Trap 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
AD0-AD15 (Bidirectional)
Address/Data bus
29
30
8086
Microprocessor Pins and Signals Common signals
31
8086
Microprocessor Pins and Signals Common signals
MN/ MX
MINIMUM / MAXIMUM
33
8086
Microprocessor Pins and Signals Common signals
TEST
READY
RESET (Input)
CLK
37
8086
Microprocessor Pins and Signals Minimum mode signals
Pins 24 -31
Pins 24 -31
39
MODES OF OPERATION: MINIMUM MODE
40
MODES OF OPERATION: MINIMUM MODE
41
Minimum Mode Read Cycle Timing Diagram
42
Minimum Mode Write Cycle Timing Diagram
43
8086
Microprocessor Pins and Signals Maximum mode signals
44
8086
Microprocessor Pins and Signals Maximum mode signals
45
8086
Microprocessor Pins and Signals Maximum mode signals
46
MODES OF OPERATION: MAXIMUM MODE
47
MODES OF OPERATION: MAXIMUM MODE
48
Maximum Mode Read Cycle Timing Diagram
49
Maximum Mode Write Cycle Timing Diagram
50
INTERRUPTS IN 8086
The meaning of ‘interrupts’ is to break the sequence of operation.
The meaning of ‘interrupt’ is to break the
sequence of operation.
52
While the Microprocessor is executing a program, an ‘
INTERRUPTS IN 8086
The meaning of ‘interrupts’ is to break the sequence of operation.
53
INTERRUPTS IN 8086
54
SOFTWARE INTERRUPTS IN 8086
The meaning of ‘interrupts’ is to break the sequence of operation.
256 software interrupts are divided into 3
categories.
• Type 2 – NMI
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
8. String Addressing
62
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
10. Indirect I/O port Addressing The 16-bit data (0A9FH) given in the instruction is
moved to AX register
11. Relative Addressing
(AX) 0A9FH
12. Implied Addressing
63
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.
67
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
(CL) (PA)
(CH) (PA +1)
68
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
(AL) (PA) 69
(AH) (PA + 1)
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
(CL) (PA)
(CH) (PA + 1)
70
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
71
8086 Group II : Addressing modes
Microprocessor Addressing Modes for memory data
1. Register Addressing
2. Immediate Addressing
1. Register Addressing
2. Immediate Addressing
3. Direct Addressing
5. Based Addressing
6. Indexed Addressing
Instructions using this mode have no operands.
The instruction itself will specify the data to be
7. Based Index Addressing
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
75
INSTRUCTION SET
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
3. Logical Instructions
77
8086
Microprocessor Instruction Set
78
8086
Microprocessor Instruction Set
79
8086
Microprocessor Instruction Set
81
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
ADD A, data
82
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
ADDC A, data
83
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
SUB A, data
84
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
SBB A, data
85
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
86
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
87
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
88
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
89
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
90
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
91
8086
Microprocessor Instruction Set
2. Arithmetic Instructions
Mnemonics: ADD, ADC, SUB, SBB, INC, DEC, MUL, DIV, CMP…
CMP A, data
92
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
93
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
94
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
95
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
96
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
97
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
98
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
99
8086
Microprocessor Instruction Set
3. Logical Instructions
Mnemonics: AND, OR, XOR, TEST, SHR, SHL, RCR, RCL …
100
8086
Microprocessor Instruction Set
101
8086
Microprocessor Instruction Set
REP
102
8086
Microprocessor Instruction Set
MOVS
(MAE) (MA)
103
8086
Microprocessor Instruction Set
CMPS
104
8086
Microprocessor Instruction Set
SCASW
MAE = (ES) x 1610 + (DI)
Modify flags (AL) - (MAE)
LODS
106
8086
Microprocessor Instruction Set
STOS
107
8086
Microprocessor Instruction Set
CLC Clear CF 0
NOP No operation
Mnemonics Explanation
CALL reg/ mem/ disp16 Call subroutine
109
8086
Microprocessor Instruction Set
Checks flags
110
8086
Microprocessor Instruction Set
JC disp8 Jump if CF = 1
JP disp8 Jump if PF = 1
JO disp8 Jump if OF = 1
JS disp8 Jump if SF = 1
112
Assembler directives
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..
114
8086
Microprocessor Assemble Directives
DB Define Byte
PROC
FAR Example:
NEAR
LIST DB 7FH, 42H, 35H
ENDP
Three consecutive memory locations are reserved for
SHORT the variable LIST and each data specified in the
instruction are stored as initial value in the reserved
MACRO memory location
ENDM 115
8086
Microprocessor Assemble Directives
DB Define Word
PROC
FAR Example:
NEAR
ALIST DW 6512H, 0F251H, 0CDE2H
ENDP
Six consecutive memory locations are reserved for
SHORT the variable ALIST and each 16-bit data specified in
the instruction is stored in two consecutive memory
MACRO location.
ENDM 116
8086
Microprocessor Assemble Directives
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
ENDP instructions of the program are
stored in the segment ACODE and
data are stored in the segment
SHORT ADATA
MACRO
ENDM 118
8086
Microprocessor Assemble Directives
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 …
FAR RET
NEAR CONVERT ENDP
SHORT
MACRO
ENDM 121
8086
Microprocessor Assemble Directives
PROC
ENDP
FAR
NEAR
SHORT
MACRO
ENDM 122
8086
Microprocessor Assemble Directives
PROC
ENDP
FAR User defined name of
NEAR the macro
SHORT
MACRO
ENDM 123
8086
Microprocessor Memory organization in 8086