- Asked 2/14
- 2075 Baisakh · 8 marks
- 2071 Bhadra · 3+5 marks
Addressing modes of 8086
Short answer
8086 addressing modes: immediate, register, direct, register indirect ([BX], [SI], [DI]), based ([BX/BP]+disp), indexed ([SI/DI]+disp), based indexed ([BX/BP]+[SI/DI]±disp), string (use DS:SI and ES:DI), I/O port, relative (IP+disp), and implied. Physical address = segment×10H + effective address.
What do you mean by addressing mode? Explain the different types of addressing modes available in 8086 microprocessor with examples.
Addressing mode is the method by which the processor finds the operand (data) of an instruction. The 8086 has the following modes. Physical address = segment register × 10H + effective address (EA).
| # | Mode | Operand location / EA | Example |
|---|---|---|---|
| 1 | Immediate | Data is part of the instruction | MOV AX,1234H |
| 2 | Register | Operand is in a register | MOV AX,BX |
| 3 | Direct | EA is given in the instruction (DS default) | MOV AX,[2000H] |
| 4 | Register indirect | EA is in BX, SI or DI | MOV AX,[BX] |
| 5 | Based | EA = BX or BP + displacement | MOV AX,[BX+04H] |
| 6 | Indexed | EA = SI or DI + displacement | MOV AX,[SI+10H] |
| 7 | Based indexed | EA = BX/BP + SI/DI | MOV AX,[BX+SI] |
| 8 | Based indexed with displacement | EA = BX/BP + SI/DI + disp | MOV AX,[BX+SI+08H] |
| 9 | String | Source DS:SI, destination ES:DI, auto inc/dec | MOVSB |
| 10 | I/O port (direct, indirect) | Port address in instruction or DX | IN AL,80H, IN AL,DX |
| 11 | Relative | Signed displacement added to IP | JZ NEXT |
| 12 | Implied | Operand is implicit in the instruction | CLC, CBW, XLAT |
Details
- Immediate: fast, no memory reference for the operand; it can only be a source.
- Direct:
MOV AX,[2000H]with DS = 3000H reads from 32000H. - Register indirect: with DS = 2000H, BX = 0100H,
MOV AL,[BX]reads from 20100H. - Based/indexed: convenient for records and arrays. BP-based addressing uses SS as default segment (stack data), others use DS.
- Based indexed: used for two-dimensional arrays: BX points to the array base, SI to the element.
- String: used by MOVS, CMPS, SCAS, LODS, STOS; the direction flag (DF) decides whether SI/DI are incremented or decremented.
- Relative: used by jump and call; short jumps use an 8-bit displacement (−128 to +127), near jumps use 16 bits.
✓ Answer checked by Claude Opus 5.5 (high effort)
Related questions
- Hardware interrupts available in 8086 · Microprocessor, chapter 5
- Instruction and data format, addressing modes · Microprocessor, chapter 2 · asked 2×
- Features and addressing modes of 8085 · Microprocessor, chapter 2
- Internal architecture of 8086 · Microprocessor, chapter 3 · asked 4×
- 8086 assembly language operators · Microprocessor, chapter 3 · asked 3×
- Interrupt processing in 8086 · Microprocessor, chapter 5 · asked 3×
- Microprocessor vs microcontroller; 8051 addressing · Embedded System, chapter 9
- Addressing modes with examples · Computer Organization and Architecture, chapter 2 · asked 10×
- Addressing modes of 8051 · Embedded System, chapter 9 · asked 4×
- Addressing modes in given instructions · Computer Organization and Architecture, chapter 2