---
title: "Addressing modes of 8086"
subject: "Microprocessor"
chapter: 3
key: "semester_4/microprocessor:8086-addressing-modes"
source: https://www.bctengineer.com/q/semester_4/microprocessor/8086-addressing-modes
site: BCT Engineering
---

# Addressing modes of 8086

Microprocessor · Chapter 3: Programming with 8086 Microprocessor

- Asked in: 2075 Baisakh, 8 marks; 2071 Bhadra, 3+5 marks (asked 2 times)
- Video: [Addressing Modes in 8086 Microprocessor: Basics and Examples Explained](https://www.youtube.com/watch?v=GVjwui-OQhU) — Engineering Funda
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_4/microprocessor/8086-addressing-modes
- Whole chapter: https://www.bctengineer.com/md/semester_4/microprocessor/chapter-3

## Question

What do you mean by addressing mode? Explain the different types of addressing modes available in 8086 microprocessor with examples.

## 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.

## Answer

**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.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is an addressing mode?
   A. The method by which the processor finds the operand of an instruction
   B. The speed of the CPU
   C. The size of memory
   D. The type of bus
   Answer: A. It specifies how the operand location is found. (Key point: Definition)

2. With DS = 3000H, MOV AX,[2000H] reads from which physical address?
   A. 2000H
   B. 3000H
   C. 32000H
   D. 50000H
   Answer: C. 3000H x 10H + 2000H = 32000H. (Key point: Direct addressing)

3. Which segment does BP-based addressing use by default?
   A. DS
   B. CS
   C. ES
   D. SS
   Answer: D. BP-based addressing uses SS (stack data); others use DS. (Key point: BP default segment)

4. In string addressing, what decides if SI/DI are incremented or decremented?
   A. Zero flag
   B. Carry flag
   C. Direction flag (DF)
   D. Trap flag
   Answer: C. DF=0 auto-increments, DF=1 auto-decrements. (Key point: String mode)

## Related in Microprocessor

- [Hardware interrupts available in 8086](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3A8086-hardware-interrupts) — Microprocessor, chapter 5
- [Instruction and data format, addressing modes](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3A8085-instruction-data-format-addressing) — Microprocessor, chapter 2, asked 2×
- [Features and addressing modes of 8085](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3A8085-features-addressing-modes) — Microprocessor, chapter 2
- [Internal architecture of 8086](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3A8086-architecture-block-diagram) — Microprocessor, chapter 3, asked 4×
- [8086 assembly language operators](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3A8086-operators) — Microprocessor, chapter 3, asked 3×
- [Interrupt processing in 8086](https://www.bctengineer.com/question.md?key=semester_4%2Fmicroprocessor%3Ainterrupt-processing-8086) — Microprocessor, chapter 5, asked 3×

## Related in other subjects

- [Microprocessor vs microcontroller; 8051 addressing](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3A8051-addressing-modes-micro-vs-processor) — Embedded System, chapter 9
- [Addressing modes with examples](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Aaddressing-modes) — Computer Organization and Architecture, chapter 2, asked 10×
- [Addressing modes of 8051](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3A8051-addressing-modes) — Embedded System, chapter 9, asked 4×
- [Addressing modes in given instructions](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Aaddressing-modes-8085) — Computer Organization and Architecture, chapter 2
