相关疑难解决方法(0)

AX,AH,AL如何映射到EAX?

我对x86寄存器的理解表明,每个寄存器都可以被整个32位代码访问,并且它被分成多个可访问的寄存器.

在这个例子中EAX是一个32位寄存器,如果我们调用AX它应该返回前16位,如果我们调用它AHAL它应该返回16位之后的下一个8位并且AL应该返回最后8位.

所以我的问题,因为我不相信这是它的运作方式.如果我们存储一个32位值的七...也就是EAX存储

0000 0100 0000 1000 0110 0000 0000 0111
Run Code Online (Sandbox Code Playgroud)

因此,如果我们访问AX它应该返回

0000 0100 0000 1000
Run Code Online (Sandbox Code Playgroud)

如果我们读AH它应该返回

0000 0100
Run Code Online (Sandbox Code Playgroud)

当我们读到AL它时应该返回

0000 0111
Run Code Online (Sandbox Code Playgroud)

它是否正确?如果它AH真正具有什么价值呢?

x86 assembly cpu-registers

36
推荐指数
4
解决办法
9万
查看次数

获取EAX寄存器的上半部分

在x86汇编语言中,有没有办法获得EAX寄存器的上半部分?我知道AX寄存器已经包含寄存器的下半部分EAX,但我还不知道有什么方法可以获得上半部分.

我知道,mov bx, ax会移动的下半部eaxbx,但我想知道如何的上半部分移动eaxbx为好.

x86 assembly

6
推荐指数
2
解决办法
5861
查看次数

标签 统计

assembly ×2

x86 ×2

cpu-registers ×1