小编wrx*_*xyz的帖子

CPU寄存器内的字节顺序

我需要帮助理解x86处理器的CPU寄存器内的字节序.我写了这个小装配程序:

section .data
section .bss

section .text
    global _start
_start:
    nop
    mov eax, 0x78FF5ABC
    mov ebx,'WXYZ'
    nop  ; GDB breakpoint here.
    mov eax, 1
    mov ebx, 0
    int 0x80
Run Code Online (Sandbox Code Playgroud)

我在GDB中使用第10行的断点运行此程序(在上面的源代码中注释).在此断点,info registers显示的数值eax=0x78ff5abcebx=0x5a595857.

由于W,X,Y,Z的ASCII码分别为57,58,59,5A; 并且intel是小端,0x5a595857似乎是正确的字节顺序(最低有效字节优先).那么为什么不是eax寄存器的输出0xbc5aff78(数字0x78ff5abc的最低有效字节)而不是0x78ff5abc

x86 endianness cpu-registers

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

标签 统计

cpu-registers ×1

endianness ×1

x86 ×1