You are on page 1of 12

Memory in microprocessor

8086 (part 2)
1024*1024 byte
Logic address
12 34

SEGMENT : OFFEST

DS=0100H : BX=1000H

….
Physical address= DS*10H+ OFFEST ADDRESS
00002
02001
Physical address 02000
Data Addressing Modes
1. Register indirect addressing
Transfers data between a register and a memory location addressed by a base register (BP or BX) or an
index register (DI Or SI).
Offset address

MOV AX,[BX] Physical address


MOV [DI],AX
1. Register indirect addressing(cont.)
2. BASE-PLUS-INDEX addressing

Transfers data between a register and a memory location addressed by a base register (BP or BX) Plus
an index register (DI Or SI).
Offset address

MOV [BX+DI],CL

Physical address
2. BASE-PLUS-INDEX addressing (cont.)
3. Register direct addressing
Transfers data between a register and a memory location located within the data segment.

MOV AL,[1234H]
3. Register direct addressing(cont.)
4. Register relative addressing
Transfers data between a register and a memory location addressed by a base register (BP or BX) or an
index register (DI Or SI) plus a displacement.

MOV AX, [BX+1000h]


When bx=0100h and ds=0200h then physical address = 03100h

 The displacement can be added or subtracted


4. Register relative addressing(cont.)
Note

 By default DS segment register is used for all modes except those with BP register, for these SS segment
register is used.
 Displacement can be inside or outside of the [ ] symbols, assembler generates the same machine code for
both ways.

You might also like