The term addressing mode refers to the method used to specify the operand(s) of an instruction. An addressing mode defines a rule for interpreting or modifying the address field of an instruction before the operand is accessed or used. Proper use of addressing modes is key to efficient assembly-language programming because they determine how the processor locates data in registers or memory.
An assembly-language instruction normally consists of two parts:
| Opcode | Operand |
In processors such as the 8086, the memory address of an operand (the effective address) is formed from a combination of components. The principal address components are:
BX or BP in 8086.SI or DI in 8086.Addressing modes for 8086 instructions are commonly grouped into two categories:
The following sections describe the common data addressing modes used by the 8086 microprocessor, their meanings, typical uses and examples.
Example: CLC - clear the Carry flag (no explicit operand).
Note: the range of constants is limited by the size of the instruction's immediate field (for example, 8-bit or 16-bit).
Example: MOV AL, 35H - move the immediate value 35H into register AL.
Example: MOV AX, CX - copy the contents of CX to AX.
BX, BP, SI, DI), and the contents of that register are used as the offset (effective address) into memory. This allows memory access via a register pointer.Example: MOV AX, [BX] - move the word at memory location whose offset is in BX into AX.
Semantic example (pseudo-syntax): R1 = R1 + M[R2]; R2 = R2 + d
Here one register reference, one memory reference and one ALU operation are required. Typical notation: (R2)+.
Semantic example (pseudo-syntax): R2 = R2 - d; R1 = R1 + M[R2]
Auto decrement and auto increment modes are commonly used to implement push/pop and to traverse data structures.
Example: ADD AL, [0301] - add the byte at offset 0301 to AL.
Memory indirect: the instruction field gives a memory location whose contents are the effective address; two memory references are required.
Register indirect: the instruction field names a register holding the effective address; one register reference and one memory reference are required.
SI or DI) and a displacement (8-bit or 16-bit). This mode is particularly useful for array access with a fixed base or with the segment base implicit.Example: MOV AX, [SI + 05].
BX or BP) and an index register (SI or DI), optionally plus a displacement. This mode supports access to complex data structures such as records and two-dimensional arrays.Example: ADD AX, [BX + SI].





Addressing modes for control transfer determine how the target address of a branch or call is calculated. Two common forms are:
EA = PC + (address field value)
On execution, PC is updated relative to the branch displacement: PC = PC + relative value.
EA = Base register + (address field value)
PC = Base register + relative value (for control transfer using base register).
Note: Both PC-relative and base-register addressing are useful for program relocation at run time. Base-register addressing is particularly suitable for position-independent code.
Addressing modes make it easier to implement common programming constructs in assembly language:
Match each of the high level language statements given on the left hand side with the most natural addressing mode from those listed on the right hand side.
1. A[1] = B[J]; a. Indirect addressing
2. while [*A++]; b. Indexed addressing
3. int temp = *x; c. Autoincrement
(a) (1, c), (2, b), (3, a)
(b) (1, a), (2, c), (3, b)
(c) (1, b), (2, c), (3, a)
(d) (1, a), (2, b), (3, c)
Ans. c
Solution:
Hence (C) is correct solution.
Addressing modes define how instruction operands are specified and located. Understanding addressing modes-immediate, register, direct, indirect, indexed, based indexed, and auto-increment/decrement-lets programmers and compilers generate compact, efficient code that manipulates arrays, pointers, records and control transfers with minimal instruction overhead. The 8086 family provides a flexible set of addressing modes that support these programming patterns and make program relocation and position-independent code practical.
| 1. What are addressing modes in computer science engineering? | ![]() |
| 2. How many types of addressing modes are there? | ![]() |
| 3. What is immediate addressing mode? | ![]() |
| 4. How does direct addressing mode work? | ![]() |
| 5. What is the purpose of indexed addressing mode? | ![]() |
![]() | Explore Courses for Computer Science Engineering (CSE) exam |
![]() | Get EduRev Notes directly in your Google search |