What is indirect addressing mode explain, Computer Engineering

Assignment Help:

Q. What is Indirect Addressing Mode explain?

Indirect Addressing Mode

In the indirect addressing modes operands employ registers to point to locations in memory. So it is essentially a register indirect addressing mode. This is a convenient mode for handling arrays / strings etc. For this mode two kinds of registers are used. These are:

  • Base register BX, BP
  • Index register SI, DI

BX comprises offset/ pointer in Data Segment

BP comprises offset/ pointer in Stack segment.

SI comprises offset/pointer in Data segment.

DI comprises offset /pointer in extra data segment.

There are 5 different kinds of indirect addressing modes:

1.  Register indirect

2.  Based indirect

3.  Indexed indirect

4.  Based indexed

5.  Based indexed with displacement.

Mode

Description

Example

Register Indirect

Indirect operands are particularly powerful when processing list of arrays, since a base or an indexregister can be modified at runtime.

MOV BX, OFFSET ARRAY 

; point to start of array

MOV AL,[BX] 

; get first element

INC BX 

; point to next

MOV DL,[BX] 

; get second element

The brackets around BX signify

That we are referring to the contents of memory location, using the address stored in BX.

In the subsequent illustration, three bytes in an array are added together:

MOV SI,OFFSET ARRAY 

; address of first byte

MOV AL,[SI] 

; move the first byte to AL

INC SI 

; point to next byte

ADD AL,[SI] 

; add second byte

INC SI 

; point to the third byte

ADD AL,[SI] 

; add the third byte

Based Indirectand Indexed

Indirect

Based and indirect addressing modes are employed in the same way. The contents of a register are added to a displacement to produce an effective address. The register should be one of the following: SI, DI, BX or BP. If the registers used for displacement are base registers, BX or BP, it is said to be base addressing or else it is termed as indexed addressing. A displacement is either a number or a label whose offset is known at assembly time. The notation can take various equivalent forms. If BX, SI or DI is used, the effective address is generally an offset from the DS register; BP on the other hand generally comprises an offset from SS register.

; Register added to an offset

MOV DX, ARRAY[BX]

MOV DX,[DI + ARRAY]

MOV DX,[ARRAY + SI]

; Register added to a constant

MOV AX,[BP + 2]

MOV DL,[DI - 2] ; DI + (-2)

MOV DX,2[SI]

Based Indexed

In this kind of addressing the operand's effective address is formed by combining a base register with an index register.

MOV AL,[BP] [SI]

MOV DX,[BX + SI]

ADD CX,[DI] [BX]

; Two base registers or two

; index registers cannot be

; combined, so the 

; following would be 

; incorrect:

MOV DL,[BP + BX] 

; error : two base registers

MOV AX,[SI + DI] 

; error : two index registers

Based Indexed with Displacement

The operand's effective address is formed by combining a base register, an

Index register, and a displacement. 

MOV DX,ARRAY[BX][SI]

MOV AX, [BX + SI +

ARRAY]

ADD DL,[BX + SI + 3] 

SUB CX, ARRAY[BP +

SI]

Two base registers or two

index registers can't be

combined so the

following will be

incorrect:

MOV AX,[BP + BX + 2]

MOV DX,ARRAY[SI +

DI]


Related Discussions:- What is indirect addressing mode explain

Define the register addressing mode, Q. Define the Register Addressing mode...

Q. Define the Register Addressing mode? When operands are taken from registers implicitly or explicitly it is known as register addressing. These operands are termed as regis

When the get cursor command used in interactive lists, When the get cursor ...

When the get cursor command used in interactive lists? If the hidden information is not enough to uniquely recognize the selected line, the command GET CURSOR is used.  The GET

Compare hypertext versus hypermedia, Compare hypertext versus hypermedia.  ...

Compare hypertext versus hypermedia.  Hypertext is basically similar as regular text - it can be stored, read, searched, or edited - with a significant except ion: hyper text h

Define operation code, Define Operation code. The Operation code of an ...

Define Operation code. The Operation code of an instruction is a group of  bits that explain such operations as add, sub, ,shift, mul and complement.

Explain single instruction and multiple data stream (simd), Normal 0 ...

Normal 0 false false false EN-US X-NONE X-NONE Figure: SIMD Organisation

Define the concept of encapsulation of OOA, Encapsulation of OOA Encap...

Encapsulation of OOA Encapsulation separates the interface of an abstraction from its implementation. By taking the above example i.e. of a car, we can now categorize them as:

C++, At a shop of marbles, packs of marbles are prepared. Packets are named...

At a shop of marbles, packs of marbles are prepared. Packets are named A, B, C, D, E …….. All packets are kept in a VERTICAL SHELF in random order. Any numbers of packets with thes

fisherpersons are not over-fishing, Prepare the Relational Tables to signi...

Prepare the Relational Tables to signify the following situation, which is defined by means of text and an Entity Relationship Diagram. Note: Do not attempt to vary the ERD. Yo

Draw the logic diagram of 4-bit twisted ring counters, Draw the logic diagr...

Draw the logic diagram of 4-bit Twisted Ring counters and explain its operation with the help of timing diagram. Ans: Twisted ring counter (4 BIT): We ready know that shi

Graph to display the variable, We will be using data from the 2008 Canadian...

We will be using data from the 2008 Canadian General Election Study.1 The data can be found on the course page. As well, there are three other documents (loosely called "codebooks"

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd