

Here instead of adding numbers to the register, another register is added.īase relative indirect addressing mode in 8086: The maximum limit of a segment is FFFF H, if we are adding a number which exceeds the limit, then it bounces back to 0000 H.īase indexed indirect addressing mode in 8086 In this example we used BP register to store address, so this operated in the stack segment of memory.

This summed up address was the relative of address stored in BX register, thus it was named as register relative indirect addressing mode. Which means data from location 17 H will be moved to the CL register. Suppose BX = 05 H, then 05 H + 12 H = 17 H. In register indirect addressing mode, address is given using only register. Register relative indirect addressing mode in 8086 Indirect Addressing modes are further classifies as So indirect addressing mode is used to move multiple bytes of data. Let’s consider an example of an array which holds 100 values.Īs shown in the picture, In indirect addressing mode we can set the value of i and increment it and then add total code in a loop. Using indirect addressing mode we can perform operations like loops. In microcontrollers we don’t perform single byte operations. Simple things aren’t always best! Using direct addressing mode we can perform single byte operations only. Why is indirect addressing mode when direct addressing mode is simple? MOV CL, CL ← DS : If BX = 100 H, then CL will get the value from 100 H The location of the target is stored in the register. Register Indirect addressing mode in 8086 Only BX, SI, DI, BP are the registers that can be used to store locations.

Not all registers can be used to give locations. We give the location of data through a register. Basically indirect addressing mode means giving the location of the target indirectly. There are four types of Indirect addressing modes. And as in memory banking, 16-bit of data is stored in two consecutive locations.

In memory most of the operations take place in data segment only, until unless specified. Here DS is the data segment address and 202A is the offset address. MOV CX, CX is a 16-bit register, but location 202A H has only 8-bit of data. MOV CL, data from 25H location is given to register CL.
