首页 文章

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

提问于
浏览
28

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

在这个例子中 EAX 是一个32位寄存器,如果我们调用 AX 它应该返回前16位,如果我们调用 AHAL ,它应该返回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

它是否正确?如果它真正具有什么 Value ? AH

6 回答

  • 4

    不,那不太对劲 .

    EAX is the full 32-bit value
    AX is the lower 16-bits
    AL is the lower 8 bits
    AH is the bits 8 through 15 (zero-based)
    

    编辑:

    为了完整起见,除了基于32位CPU的上述内容之外,还有64位Intel / AMD CPU

    RAX, which hold a 64-bit value, and where EAX is mapped to the lower 32 bits.
    
  • 4

    AX是EAX的16位低位 . AH是AX的8个高位(即EAX的8-15位),AL是EAX和AX的最低有效字节(位0-7) .

    示例(十六进制数字):

    EAX: 12 34 56 78
    AX: 56 78
    AH: 56
    AL: 78
    
  • 7

    不,你的错是错的

    Al和Ah的选择来自AX而不是来自EAX

    例如

    EAX=0000 0000 0000 0000 0000 0000 0000 0111
    

    因此,如果我们致电AX,它应该返回

    0000 0000 0000 0111
    

    如果我们打电话给AH,它应该返回

    0000 0000
    

    当我们打电话给AL时它应该返回

    0000 0111
    

    示例2

    EAX: 22 33 55 77
    AX: 55 77
    AH: 55    
    AL: 77
    

    例3

    EAX: 1111 0000 0000 0000 0000 0000 0000 0111    
    AX= 0000 0000 0000 0111
    AH= 0000 0000
    AL= 0000 0111
    
  • 51

    否 - AL是AX的8个最低有效位 . AX是EAX的16个最低有效位 .

    如果我们从eax开始使用04030201h,也许最容易处理 . 在这种情况下,AX将包含0201h,AH将包含02h,AL将包含01h .

  • 4

    下面的代码片段使用GDB检查EAX .

    (gdb) info register eax
        eax            0xaa55   43605
        (gdb) info register ax
        ax             0xaa55   -21931
        (gdb) info register ah
        ah             0xaa -86
        (gdb) info register al
        al             0x55 85
    
    • EAX - 全32位值

    • AX - 低16位值

    • AH - 比特从8到15

    • AL - EAX / AX的低8位

  • 29
    | 0000 0001 0010 0011 0100 0101 0110 0111 | ------> EAX
    
    |                     0100 0101 0110 0111 | ------> AX
    
    |                               0110 0111 | ------> AL
    
    |                     0100 0101           | ------> AH
    

相关问题