Assembly 向AX寄存器添加值,但使用AH和AL
在此组件(8086)中,对每个寄存器的值进行编码:BL、AH和AL 代码如下:Assembly 向AX寄存器添加值,但使用AH和AL,assembly,x86,x86-16,Assembly,X86,X86 16,在此组件(8086)中,对每个寄存器的值进行编码:BL、AH和AL 代码如下: MOV AX, 1900 MOV BL, AH INC AL AX=AL+AH*256 这意味着BL大约是1900/256give or take,加上1 其余的在AL中 这是正确的,因为如果AX=256,那么AL=0和AH=1 256=0+1*256 79=79+0*256 65535=256*256-1您应该能够自己完成这项工作。如果没有,请在调试器中尝试。“65535=256*256-1”虽然这是正确的,但在
MOV AX, 1900
MOV BL, AH
INC AL
AX=AL+AH*256
这意味着BL
大约是1900/256
give or take,加上1
其余的在AL
中
这是正确的,因为如果AX=256
,那么AL=0
和AH=1
256=0+1*256
79=79+0*256
65535=256*256-1
您应该能够自己完成这项工作。如果没有,请在调试器中尝试。“65535=256*256-1”虽然这是正确的,但在本文中看到这一点很奇怪!从逻辑上讲,所有这些数值示例都说明了第一行中给出的公式(AX=AL+AH*256)。因此,最后一个示例应为:65535=255+255*256Ha!接得好!读了这篇文章,我意识到我为什么会想到它!就在最近的一个星期里,我一直在尝试解决一个codegolf
,我的python代码中有一行是QuadWord[:]=256*256*256-1
,这是从double-
切换到QuadWord
之前的最后一位:通过这种方式,我的大脑更容易将字节映射到各自的寄存器D