Hello,
I am having difficulties understand the way we should find phyiscal addresses.
Specify the addressing mode and compute the physical address of the data (to be written into or to be read from the memory) in each of the following instructions. Assume (CS) = 0B50 H, (DS) = 0AA0 H, (SI) = 0220 H, (DI) = 0100 H, (BX) = 0500 H
a) MOV BH, 22H
b) MOV [SI], BX
This is an example. The first one is immediate so I know that we do not have to do anything. However the second one is a bit harder because I do not know how to associate SI with the required register.
Physical address = offset + destination operands. I am having difficulties associating or finiding offset address.
Thank you in advance.
As you have mentioned, mov bh,22h is immediate addressing, source immediate byte data will be transferred into destination register. Here hexadecimal value 22 will be transferred to the 8- bit register bh.
mov [si],bx : This is register indirect addressing in which data will be transferred between a register and a memory location addressed by an index or base register. They are bp,bx,si and di. Here, the data will be transferred to the data segment offset address indexed in the register si.
That is the data bytes 0500h will be copied to the data segment offset address= DS(left shifted )+si=(0AA0*10)+0220
=0AB0+0220= 0CD0.
So the value 0500 will be stored in the memory location 0CD0h.
Get Answers For Free
Most questions answered within 1 hours.