0% found this document useful (0 votes)
13 views

Addressing Modes 8086

The document discusses various addressing modes used in microprocessors and computer architecture. It describes two main categories of addressing modes - those for data and those for branch instructions. It provides details on different addressing modes for data like implied, immediate, register direct, register indirect, auto indexed (increment and decrement modes), absolute, and indirect addressing modes. It also discusses addressing modes for transfer of control like PC relative addressing and base register addressing modes. Important terms related to addressing modes like address field, effective address, offset address, displacement, base, and index registers are also defined. The key benefits and usage of different addressing modes are highlighted.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Addressing Modes 8086

The document discusses various addressing modes used in microprocessors and computer architecture. It describes two main categories of addressing modes - those for data and those for branch instructions. It provides details on different addressing modes for data like implied, immediate, register direct, register indirect, auto indexed (increment and decrement modes), absolute, and indirect addressing modes. It also discusses addressing modes for transfer of control like PC relative addressing and base register addressing modes. Important terms related to addressing modes like address field, effective address, offset address, displacement, base, and index registers are also defined. The key benefits and usage of different addressing modes are highlighted.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Microprocessor and

Computer Architecture

Addressing Modes
• The term addressing modes refers to the way in which the operand of an
instruction is specified.

• The addressing mode specifies a rule for interpreting or modifying the


address field of the instruction before the operand is actually executed.

• Addressing modes for instructions are divided into two categories:

1) Addressing modes for data

Addressing
2) Addressing modes for branch

• The addressing modes provide flexible access to memory, allowing you to

Modes easily access variables, arrays, records, pointers, and other complex data
types.

• The key to good assembly language programming is the proper use of


memory addressing modes.

• An assembly language program instruction consists of two parts: Opcode


and Operand.
IMPORTANT TERMS

• Address Field: Address field may designate a


memory address or a processor register.
• Starting address of memory segment.

Addressing • Effective address: The effective address is defined


to be the memory address obtained from the
computation dictated by the given addressing

Modes mode. The effective address is the address of the


operand in a computational-type instruction.
• Offset address: An offset is determined by adding

(Contd..) any combination of three address


elements: displacement, base, and index.
• Displacement: It is an 8 bit or 16-bit immediate
value given in the instruction.
• Base: Contents of base register, BX, or BP.
• Index: Content of index register SI or DI.
 Addressing Modes based on Data
 Implied Addressing Mode

Types of 

Immediate Addressing Mode
Register Direct Addressing Mode
Addressing  Register Indirect Mode

Modes  Auto Indexed (Increment Mode)


 Auto Indexed (Decrement Mode)
 Absolute Addressing Mode
 Indirect addressing Mode
 Addressing Modes based on Transfer of Control
 PC Relative Addressing Mode
 Base Register Addressing Mode
 Indexed Addressing Mode
 Base Indexed Addressing Mode
Addressing Modes Based
on Data
Implied  In implied addressing the operand is specified in
the instruction itself.
Addressing  In this mode the data is 8 bits or 16 bits long and
Mode data is the part of instruction.
 Zero address instruction are designed with implied
addressing mode.
 For Example: CLC (used to reset Carry flag to 0),
CMA, INC A, RLC, RAR etc.
 Implied Addressing Mode pictorial format
 In this mode data is present in address field of instruction. Designed like one address
instruction format.
Immediate  This instruction has an operand field rather than an address field. The operand field
contains the actual operand to be used in conjunction with the operation specified in the

Addressing instruction.
 These instructions are useful for initializing register to a constant value.

Mode
(symbol #)
 For Example: MOV AL, 35H (move the data 35H into AL register)
ADD AX, #5H (A=A+5)
LDA, #25H (Load 25H into the accumulator)
AND AX, 0000H (AX=AX^0000)
Note:

 Limitation in the immediate mode is that the range of constants are restricted by size of
address field.
 No memory reference.
 Fast execution.
 In this mode, the operands are in registers that reside within the

Register Direct CPU .

 The register is selected from the register field in the instruction.


Addressing For Example:

Mode •

MOV AX, CX
ADD BL (AL=AL+BL)

Note:
 Effective Address (EA) = R
 Here one register reference is required to access the data.
 No memory reference.
 Limited address space
 In this mode the instruction specifies a register in the CPU whose contents give the address
Register of the operand in the memory.
 In other words, the selected register contains the address of the operand rather than the
Indirect Mode operand itself.
 Before using a register indirect mode instruction, the programmer must ensure that the
memory address of the operand is placed in the processor register with a previous
instruction.
 For example:
• MOV AX, [BX]
• MOV AX, [DI]
• ADD AL, [BX]
• MOV AX, [SI]
 Note:
• Effective Address (EA) = (R) or [R]
• Here two register reference is required to access the data.

• Large address space.


• The address field of the instruction uses fewer bits to select a register than would
have been required to specify a memory address directly.
• The CPUs let you access memory indirectly through a register using the register
indirect addressing modes.
 Effective address of the operand is the contents of a register specified
in the instruction.
 After accessing the operand, the contents of this register are
automatically incremented to point to the next consecutive memory
location (R1) +.
Auto Indexed  Here one register reference, one memory reference and one ALU
(increment operation is required to access the data.
 Example:
mode) • Add R1, (R2) + // OR
• R1 = R1 +M[R2]
• R2 = R2 + d
 Useful for stepping through arrays in a loop. R2 – start of array d –
size of an element.
 Effective address of the operand is the contents of a register specified
in the instruction.
 Before accessing the operand, the contents of this register are
automatically decremented to point to the previous consecutive
memory location. –(R1)
 Here one register reference, one memory reference and one ALU
Auto indexed operation is required to access the data.

(decrement  For Example:

mode) • Add R1, -(R2) //OR


• R2 = R2-d
• R1 = R1 + M[R2]
 Auto decrement mode is same as auto increment mode. Both can also
be used to implement a stack as push and pop. Auto increment and
Auto decrement modes are useful for implementing “Last-In-First-Out”
data structures.
 In this mode the effective address is equal to the address part of the instruction.
 The operand resides in memory and its address is given directly by the address field
of the instruction.

Absolute  Effective Address (EA) = A


 For Example:
addressing • ADD AL, [0301H] //add the operand of offset address 0301H to AL

Mode • MOV AX, [0500H] //move the operand of offset address 0500H to AX

(symbol [ ])

Note:

• Here only one memory reference operation is required to access the data.
• Simple.
• Limited address Field
In this mode address field of instruction contains the address of
effective address. Here two references are required.
Indirect a) 1st reference to get effective address.
b) 2nd reference to access the data.
addressing Based on the availability of Effective address, Indirect mode is
Mode of two kinds:
• Register Indirect: In this mode effective address is in the
register, and corresponding register name will be
maintained in the address field of an instruction.
• Memory Indirect: In this mode effective address is in the
memory, and corresponding memory address will be
maintained in the address field of an instruction.
 For Example:
• MOV CL, [BX]
Addressing Modes Based on
Transfer of Control
 PC relative addressing mode is used to implement intra
segment transfer of control. In this mode effective address
PC Relative is obtained by adding displacement to PC.
Addressing • EA= PC + Address field value
Mode • PC= PC + Relative value.
 Note:
• Used for program control instructions
 Base register addressing mode is used to implement inter segment transfer of
control. In this mode effective address is obtained by adding base register value
to address field value.

• EA= Base register + Address field value.

• PC= Base register + Relative value.


Base Register  For example:

Addressing • MOV DX, [BX+04]

Mode • ADD CL, [BX+08]

 Note:

a) PC relative and based register both addressing modes are suitable for
program relocation at runtime.
b) Based register addressing mode is best suitable to write position
independent codes.
c) The base register addressing mode is used in computers to facilitate the
relocation of programs in memory i.e., when programs and data are moved
from one segment of memory to another.
The operand’s offset is the sum of the content of an index
register SI or DI and an 8 bit or 16-bit displacement.
For example:
• MOV AX, [SI +05]
Indexed • ADD AL, [DI+16]
Addressing  Note:
1) Use to access or implement array efficiently.
Mode
2) Multiple registers required to implement.
3) Any element can be accessed without changing
instruction.
 The operand’s offset is sum of the content of a base register
Based BX or BP and an index register SI or DI.
 For Example:
Indexed • ADD AX, [BX+SI]
Addressing • MOV AX, [SI+2000]
• MOV AL, [DI+3000]
ADDRESSING MODES APPLICATIONS
Immediate Addressing Mode  To initialize registers to a constant value

Direct Addressing Mode


 To access static data
and
 To implement variables
Register Direct Addressing Mode

Applications Indirect Addressing Mode


and
 To implement pointers because pointers are memory locations
that store the address of another variable
To pass array as a parameter because array name is the base

of Register Indirect Addressing Mode address and pointer is needed to point the address

Addressing Relative Addressing Mode


 For program relocation at run time i.e. for position independent
code
To change the normal sequence of execution of instructions
Modes

 For branch type instructions since it directly updates the program
counter

 For array implementation or array addressing


Index Addressing Mode
 For records implementation

 For writing relocatable code i.e. for relocation of program in


Base Register Addressing Mode memory even at run time
 For handling recursive procedures

Auto-increment Addressing Mode


 For implementing loops
and  For stepping through arrays in a loop
Auto-decrement Addressing Mode  For implementing a stack as push and pop

You might also like