已知(DS)=3000H, (BX)=1000H, (SI)=0020H, 内存分配如图所示LEA DI,[BX+SI+0300H]MOV AX,[DI]LDS SI,[BX+DI]SUB AX,1234H连续执行上述指令后, (DS)=_①__,(SI)= ② ,(BX)= ③ ,(DI)= _④ ,(AX)= ⑤__
时间: 2023-08-18 22:09:56 浏览: 85
根据题意,我们可以模拟一遍程序执行过程:
1. LEA DI,[BX+SI+0300H]:将 DI 寄存器的值设置为 BX+SI+0300H 的地址,即 DI=1000H+0020H+0300H=1320H。
2. MOV AX,[DI]:将 DI 指向的内存单元的值读入 AX 寄存器,即 AX=[1320H]=xxxxH(假设值为 xxxxH)。
3. LDS SI,[BX+DI]:将 DS 寄存器的值设置为 [BX+DI] 指向的内存单元中的段地址,SI 寄存器的值设置为该内存单元中的偏移地址。因为 BX=1000H,DI=1320H,所以 [BX+DI]=[1000H+1320H]=2320H,其中 2320H 的高 16 位是段地址,低 16 位是偏移地址。所以 DS=23H,SI=20H。
4. SUB AX,1234H:将 AX 寄存器的值减去 1234H,即 AX=xxxxH-1234H=yyyyH。
5. 程序结束。
根据上述过程,可得出以下结果:
① DS=23H
② SI=20H
③ BX=1000H
④ DI=1320H
⑤ AX=yyyyH
相关问题
设 DS =3000H, ES =2000H, SS =1000H, BP =0060H, SI =0600H, TABLE =60H。指令" MOV AX , TABLE [ SI ][ BP ]"的源操作数的物理地址为
根据指令 "MOV AX, TABLE[SI][BP]",可以得知源操作数是由 TABLE[SI][BP] 组成的,其中 TABLE 的起始地址为 60H,SI 存放偏移地址,BP 存放基地址。因此,可以先计算出偏移地址和基地址的和,然后再加上 TABLE 的起始地址,即可得到源操作数的物理地址。
偏移地址为 0600H,基地址为 0060H,它们的和为 0660H。因此,源操作数的物理地址为:
```
2000H:0660H
= 20660H
```
所以,源操作数的物理地址为 20660H。
AX=1234H,DS=1000H,BX=2000H,(12000H)=3123H,执行MOV AL,【BX】后,AL的值为多少
根据题目给出的信息:
- AX=1234H,表示AX寄存器中的值为1234H;
- DS=1000H,表示数据段寄存器DS中的值为1000H;
- BX=2000H,表示基址寄存器BX中的值为2000H;
- (12000H)=3123H,表示内存地址12000H中存储的值为3123H。
执行MOV AL, [BX]指令,将BX寄存器中存储的值作为偏移地址,加上DS寄存器中存储的值1000H,得到的结果为3000H,然后从内存地址3000H中读取一个字节数据,存储到AL寄存器中。因为题目并没有给出内存地址2000H中存储的值,所以无法确定移动到AL寄存器中的值。
所以,无法计算AL的值。
阅读全文