8086 Microprocessor - Study Guide
The Intel 8086 is a 16-bit microprocessor introduced by Intel in 1978. It played a crucial role in the
development of modern computers and is the basis for the x86 architecture.
1. Features of 8086 Microprocessor
• 16-bit Processor: Can process 16-bit data at a time.
• 20-bit Address Bus: Can address 1MB (2²⁰ = 1,048,576 bytes) of memory.
• 16-bit Data Bus: Can transfer 16-bit data in a single cycle.
• Pipeline Architecture: Uses a 6-stage instruction queue for prefetching.
• Memory Segmentation: Divides memory into 4 segments of 64 KB each.
• Two Operating Modes:
o Minimum Mode (single processor mode)
o Maximum Mode (multiprocessor system)
2. Architecture of 8086
The 8086 architecture is divided into two main units:
2.1 Bus Interface Unit (BIU)
• Responsible for fetching, reading, and writing data.
• Uses Instruction Queue (6-byte prefetch queue) to improve execution speed.
• Contains:
o Segment Registers (CS, DS, SS, ES)
o Instruction Pointer (IP)
o Address Calculation Unit
2.2 Execution Unit (EU)
• Decodes & executes instructions.
• Contains:
o General Purpose Registers (AX, BX, CX, DX)
o Pointer & Index Registers (SP, BP, SI, DI)
o Flag Register (indicates status of operations)
8086 Registers
Register Function
AX (Accumulator) Used for arithmetic & I/O operations
BX (Base Register) Used as a pointer to data
CX (Counter Register) Used in loop instructions
DX (Data Register) Used in multiplication & I/O operations
SP (Stack Pointer) Points to top of the stack
BP (Base Pointer) Used to access stack data
SI (Source Index) Used in string operations
DI (Destination Index) Used in string operations
CS (Code Segment) Holds the starting address of the code
DS (Data Segment) Holds the starting address of the data
SS (Stack Segment) Holds the starting address of the stack
ES (Extra Segment) Used for additional data storage
IP (Instruction Pointer) Points to the next instruction
FLAGS Register Stores processor status flags (Carry, Zero, Sign, etc.)
3. Memory Segmentation
The 8086 uses segmented memory, dividing 1MB memory into four 64KB segments:
1. Code Segment (CS) – Stores program code.
2. Data Segment (DS) – Stores variables and data.
3. Stack Segment (SS) – Stores temporary data and function calls.
4. Extra Segment (ES) – Used for additional data storage.
Physical Address Calculation:
Physical Address=Segment Address×16+Offset\text{Physical Address} = \text{Segment Address}
\times 16 + \text{Offset}
Example:
• CS = 2000H, IP = 3000H
• Physical Address = (2000H × 10H) + 3000H = 23000H
4. Addressing Modes
8086 supports various addressing modes for efficient instruction execution.
4.1 Immediate Addressing
• Operand is directly specified in the instruction.
• Example: MOV AX, 1234H
4.2 Register Addressing
• Operand is stored in a register.
• Example: MOV AX, BX
4.3 Direct Addressing
• Operand is stored in a memory location.
• Example: MOV AX, [1234H]
4.4 Indirect Addressing
• Uses a register as a pointer to memory.
• Example: MOV AX, [BX]
4.5 Indexed Addressing
• Uses an index register for memory access.
• Example: MOV AX, [SI]
4.6 Base + Index Addressing
• Uses two registers for complex addressing.
• Example: MOV AX, [BX+SI]
5. Instruction Set
The 8086 instruction set is classified into different groups:
5.1 Data Transfer Instructions
• MOV – Transfer data
• PUSH – Push data to stack
• POP – Pop data from stack
• XCHG – Exchange values
5.2 Arithmetic Instructions
• ADD – Addition
• SUB – Subtraction
• MUL – Multiplication
• DIV – Division
• INC – Increment
• DEC – Decrement
5.3 Logical Instructions
• AND, OR, XOR – Bitwise operations
• NOT – Bitwise complement
• TEST – Logical comparison
5.4 Control Transfer Instructions
• JMP – Unconditional jump
• JE, JNE, JG, JL – Conditional jumps
• CALL – Call a procedure
• RET – Return from procedure
5.5 String Instructions
• MOVS – Move string data
• CMPS – Compare string data
• SCAS – Scan string data
6. Operating Modes
6.1 Minimum Mode (Single Processor Mode)
• Used for small systems.
• The 8086 directly controls the buses.
• Signals used: HOLD, HLDA, WR, RD, ALE.
6.2 Maximum Mode (Multiprocessor Mode)
• Used for multiprocessing systems.
• An external bus controller (8288) manages system control.
• Supports coprocessors like 8087 (Floating Point Unit).
7. Interrupts in 8086
Interrupts are used to handle external or internal events.
Types of Interrupts
1. Hardware Interrupts (Triggered by external devices)
o NMI (Non-Maskable Interrupt) – Cannot be ignored.
o INTR (Interrupt Request) – Can be masked.
2. Software Interrupts (Triggered by software instructions)
o INT n – Calls an interrupt routine.
o Example: INT 21H (used in DOS).
8. Applications of 8086
• Personal Computers (Early IBM PCs)
• Embedded Systems (Industrial applications)
• Automobile Systems (ECUs, microcontrollers)
• Communication Systems (Networking devices)
• Military and Aerospace (Avionics, radars)
9. Comparison of 8085 vs 8086
Feature 8085 8086
Data Bus 8-bit 16-bit
Address Bus 16-bit (64KB) 20-bit (1MB)
Clock Speed 3 MHz 5-10 MHz
Registers 6 14
Memory Segmentation No Yes
Pipelining No Yes
10. Study Resources
Books:
1. "Microprocessor Architecture, Programming, and Applications with the 8085/8086" –
Ramesh Gaonkar
2. "The Intel Microprocessors" – Barry B. Brey
3. "Advanced Microprocessors and Peripherals" – A.K. Ray & K.M. Bhurchandi
Online Courses & Tutorials:
• NPTEL – Microprocessor Courses
• Udemy – 8086 Programming
• YouTube – Neso Academy, All About Electronics