addressing-modes-of-8086
addressing-modes-of-8086
8086
Why study addressing modes?
10 ABH
MOV AX,10ABH AX
2: Direct addressing mode
Memory
22 5000
33 5001
MOV AX,[5000H] 5002
AX
3: Register addressing mode
Here, the data is stored in the register and it can be a 8-bit
or 16-bit register.
All the registers, except IP, may be used in this mode.
10 AB BX
MOV AL,BLH BH BL
MOV AX,BXH FF 33 AX
AH AL
4: Register Indirect addressing mode
50 00 BX
5: Indexed addressing mode
In this addressing mode, offset of the operand is stored in
one of the index registers.
DS is the default segment for index register SI and DI.
Memory
22 5000
AX
33 5001
MOV AX,[SI] 5002
50 00 SI
6: Register relative addressing mode
50 00 + 50H = 5050H
Final
Index
BX Offset Address
7: Base plus index addressing mode
In this mode the effective address is formed by adding
content of a base register (any one of BX or BP) to the
content of an index register (SI or DI).
Default segment register DS.
12 3000
AX
MOV AX, [BX] [SI] 34 3001
3002
10 00 + 20 00 = 3000H
Final
BX SI Index
Address
8: Base relative plus index addressing mode
50H + 10 00 20 00 = 3050H
Final
BX SI Index
Address
Addressing Modes
Register - transfers a byte or word from the source register or
memory location to the destination register or memory location
MOV BX, CX
Immediate - transfers an immediate byte or word of data into
the destination register or memory location
MOV AX, 3456h
Direct - moves a byte or word between a memory location and
a register
MOV AL, [1234h] (1234h is treated as a displacement within
data segment)
Addressing Modes(cont.)
Register Indirect (base relative or indexed) - transfers a byte
or word of data between a register and the memory location
addressed by an index (DI or SI) or base register (BP or BX)
MOV AX, [BX]
Base Plus Index (base relative indexed) - transfers a byte or
word of data between a register and the memory location
addressed by a base register (BP or BX) plus index (DI or SI)
register
MOV DX, [BX + DI]
Addressing Modes(cont.)
Register Relative - transfers a byte or word of data between a
register and the memory location addressed by an index (DI or SI)
or base register (BP or BX) plus displacement
MOV AX, [BX + 1000h]