1327 addressingmodesof8086-100523023240-phpapp02

Post on 28-Jan-2015

109 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Addressing Modes of Addressing Modes of 80868086

Addressing Modes of Addressing Modes of 80868086

Prepared & Presented by-Prepared & Presented by-Rajvir SinghRajvir 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 instructionMOV 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. Register addressing mode2. Immediate addressing mode3. Memory addressing mode4. Port addressing mode5. Relative addressing mode6. 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, 45HMOV BX, 5062H

3. Memory addressing mode

• One of the operands is in memory• 8086 must use

– a segment register– A 16-bit offset (effective address)

• By default, DS register is used for accessing data from memory

• 16-bit offset can be specified in many ways

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

+ = 20-bit physical address

of operand

16-bit offset

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 SS • E.g. MOV AX, 4[BX]• E.G. PUSH CX

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. Register addressing mode2. Immediate addressing mode3. Memory addressing mode4. Port addressing mode5. Relative addressing mode6. 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

top related