汇编计算问题,求高手指导下我这个小菜吧
发布网友
发布时间:2022-09-09 09:35
我来回答
共2个回答
热心网友
时间:2024-04-04 08:58
基本的寻址问题。
如果MOV AX, 1352H,这就是立即数寻址,那么AX = 1352H,这个很好理解了。
如果MOV AX, [1352H],这是什么寻址我也说不上来了,总之结果是AX = DS:[1352H],即AX等于DS段里,偏移地址为1352H的那块内存里的值。
因为DS = 1000H,所以DS:[1352H] = DS * 10H + 1352H = 11352H。就是段地址左移四位,加上偏移地址,就构成了20位的物理地址。
因为AX是个16位的寄存器,所以要读取两个字节,从11352H地址开始,读取两个字节到AX里。INTEL的CPU是小端优先,所以读取结果是,AX高8位等于11353H地址里的值即26H,低8位等于11352H地址中的值即0FFH,所以AX = 26FFH。
如果是MOV AL, [1352H],因为AL是个8位寄存器,所以只用读一个字节即可,此时AL = 0FFH。
热心网友
时间:2024-04-04 08:59
AX是双字节指令!它要连续取两个字节的数据,低地址取来放到低字节,高地址取来放到高字节!这个语句就相当于
MOV AL [1352H]
MOV AH [1353H]