在汇编语言中MOV AX,3[BX]是什么寻址
3个回答
展开全部
这是 寄存器相对寻址方式。
操作数的有效地址是一个基址或变址寄存器的内容和指令中指定的8位或16位
位移量(displacement)之和。
除有段跨越前缀者外,对于寄存器为BX,SI,DI的情况,段寄存器用DS,而寄存器BP则使用SS段寄存器的内容作为段地址。
物理地址=16D*(DS)+ (BX)或(SI)或(DI + 8位位移量或16位位移量
或 物理地址=16D*(SS)+ (BP) + 8位位移量或16位位移量
例:MOV AX,COUNT[SI]
其中COUNT 为16位位移量的符号地址。
如果(DS)=3000H,(SI)=2000H,COUNT=3000H
则物理地址=30000+2000+3000=35000H
执行结果是(AX)=1234H
这种寻址方式同样可用于表格处理,表格的首地址可设置为COUNT,利用修改基址或变址寄存器的内容来取得表格中的值。
直接变址寻址方式也可以使用段跨越前缀。
例如:MOV DL,ES:STRING[SI]
操作数的有效地址是一个基址或变址寄存器的内容和指令中指定的8位或16位
位移量(displacement)之和。
除有段跨越前缀者外,对于寄存器为BX,SI,DI的情况,段寄存器用DS,而寄存器BP则使用SS段寄存器的内容作为段地址。
物理地址=16D*(DS)+ (BX)或(SI)或(DI + 8位位移量或16位位移量
或 物理地址=16D*(SS)+ (BP) + 8位位移量或16位位移量
例:MOV AX,COUNT[SI]
其中COUNT 为16位位移量的符号地址。
如果(DS)=3000H,(SI)=2000H,COUNT=3000H
则物理地址=30000+2000+3000=35000H
执行结果是(AX)=1234H
这种寻址方式同样可用于表格处理,表格的首地址可设置为COUNT,利用修改基址或变址寄存器的内容来取得表格中的值。
直接变址寻址方式也可以使用段跨越前缀。
例如:MOV DL,ES:STRING[SI]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询