设 (DS)=1000H, (ss)=2000H, (ES)=3000H, (BX)=0100H, (BP)=0120H, (SI)=0200H, (DI)=0220H, 试计算以下指令中存储器操作数的物理地址。 (1) mov al,[bx]
时间: 2023-10-26 14:08:03 浏览: 355
根据指令 "mov al, [bx]",我们知道操作数是在存储器中的,因此我们需要计算出存储器操作数的物理地址。
首先,我们需要计算出 BX 寄存器中的内容,即物理地址为 DS:BX。由于 BX 的值为 0100H,因此物理地址为 1000H:0100H。
然后,我们需要访问存储器中物理地址为 1000H:0100H 的字节,即 DS:BX 寄存器指向的地址。因此,存储器操作数的物理地址为 1000H:0100H。
最后,将该地址中的字节加载到 AL 寄存器中。
相关问题
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的值。
设 (DS)=1000H, (ss)=2000H, (ES)=3000H, (BX)=0100H, (BP)=0120H, (SI)=0200H, (DI)=0220H, 试计算以下指令中存储器操作数的物理地址。
1. MOV AX, [DS:BX+SI]
物理地址 = DS*16 + BX + SI = 1000H * 16 + 0100H + 0200H = 12200H
2. MOV AX, [ES:BP+DI+8]
物理地址 = ES*16 + BP + DI + 8 = 3000H * 16 + 0120H + 0220H + 8 = 48248H
3. MOV [DS:BX+SI], CX
物理地址 = DS*16 + BX + SI = 1000H * 16 + 0100H + 0200H = 12200H
4. MOV [ES:BP+DI+6], DL
物理地址 = ES*16 + BP + DI + 6 = 3000H * 16 + 0120H + 0220H + 6 = 48244H