Assembly 向AX寄存器添加值,但使用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”虽然这是正确的,但在

在此组件(8086)中,对每个寄存器的值进行编码:BLAHAL

代码如下:

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