我的理解是,x86寄存器中的每个寄存器都可以被整个32位代码访问,并且它被分成多个可访问的寄存器。
在这个例子中,32位寄存器EAX,如果我们调用AX,它应该返回前16位,如果我们调用AH或AL,它应该返回16位后的下一个8位,而AL应该返回最后的8位。
所以我的问题是,因为我不完全相信它是如何操作的。如果我们存储32位值即EAX存储:
所以如果我们访问
如果我们读取
在这个例子中,32位寄存器EAX,如果我们调用AX,它应该返回前16位,如果我们调用AH或AL,它应该返回16位后的下一个8位,而AL应该返回最后的8位。
所以我的问题是,因为我不完全相信它是如何操作的。如果我们存储32位值即EAX存储:
0000 0100 0000 1000 0110 0000 0000 0111
所以如果我们访问
AX
,它应该返回0000 0100 0000 1000
如果我们读取
AH
,它应该返回。0000 0100
当我们读取 AL
时应返回
0000 0111
这是否正确?如果是,AH
真正持有什么值?