Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 21

Addressing Modes of 8086

Prepared & Presented byRajvir Singh

The different ways in which a processor can access data are called

addressing modes

8086 accesses code bytes using contents of CS & IP register 8086 accesses stack using contents of SS & SP register

How 8086 accesses data?


8086 assembly language instructions can be used to illustrate the addressing modes Format of MOV instruction MOV destination, source

Source of data can be


Immediate data A specified register A memory location specified in 1 of 24 different ways

Destination of data can be


A specified register A memory location specified in 1 of 24 different ways

Classification of Addressing Modes


1. 2. 3. 4. 5. 6. Register addressing mode Immediate addressing mode Memory addressing mode Port addressing mode Relative addressing mode Implied addressing mode

1. Register addressing mode


Source/destination can be one of the 8086 registers MOV AX, BX ; 16-bit data transfer MOV AL, BL ; 8-bit data transfer

2. Immediate addressing mode


8 or 16-bit data can be specified as part of the instruction E.g. MOV AL, 45H MOV BX, 5062H

3. Memory addressing mode


One of the operands is in memory 8086 must use By default, DS register is used for accessing data from memory 16-bit offset can be specified in many ways
a segment register A 16-bit offset (effective address)

Different ways of specifying offset


Direct memory addressing Register Indirect addressing Based addresing Indexed addressing Based Indexed addressing String addressing

a. Direct Memory addressing


Effective address is specified directly in the instruction E.g. MOV BX, [5062] 20-bit physical address of memory location is calculated using DS and offset value 5062

Accessing memory
Segment register

+
16-bit offset

20-bit physical address of operand

b. Register indirect addressing


The effective address of memory operand is present in one of the base or index registers [BX, BP, SI, DI] E.g. MOV CX, [BX] If DS = 2000H, BX = 0004H THEN contents of memory location 20004H are copied to register CX

c. Based addressing Effective address is sum of


16-bit offset given in instruction
Contents of base register

BX or BP

Segment register is DS or
E.g. MOV AX, 4[BX] E.G. PUSH CX

SS

d. Indexed addressing
Effective address is sum of

16-bit offset given in instruction


Contents of index register

SI or DI

Segment register is DS
E.g. MOV AX, 4[SI]

e. Based Indexed addressing


Effective address is sum of

16-bit offset given in instruction


Contents of index register

SI or DI Contents of base register BX or BP


Segment register is DS E.g. MOV AX, 4[BX][SI]

f. String addressing
Used when string related instructions are executed Uses index registers SI register points to the first byte or word of the source string DI register points to the first byte or word of the destination

Classification of Addressing Modes


1. 2. 3. 4. 5. 6. Register addressing mode Immediate addressing mode Memory addressing mode Port addressing mode Relative addressing mode Implied addressing mode

4. Port addressing
Two I/O port addressing modes can be used

Direct (e.g. IN AL, 02H) Indirect (e.g. IN AL, DXH)

5. Relative addressing mode


Specifies the operand as a 8-bit signed displacement relative to PC E.g. JNC 08H IF carry = 0, THEN PC is loaded with current PC contents + 8-bit signed value

6. Implied addressing mode


No operands are specified E.g. CLC Means clear carry flag

You might also like