Порядок байтов внутри регистров ЦП

Мне нужна помощь в понимании порядка байтов внутри регистров ЦП процессоров x86. Я написал эту небольшую ассемблерную программу:

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

Я запустил эту программу в GDB с точкой останова в строке номер 10 (прокомментировано в источнике выше). В этой точке останова регистры информации показывают значение eax = 0x78ff5abc и ebx = 0x5a595857 .

Поскольку коды ASCII для W, X, Y, Z равны 57, 58, 59, 5A соответственно; и Intel является прямым порядком байтов, 0x5a595857 кажется правильным порядком байтов (сначала младший байт). Почему тогда нет вывода для регистра eax 0xbc5aff78 (младший байт числа 0x78ff5abc первым) вместо 0x78ff5abc ?

9
задан wrxyz 21 December 2010 в 23:01
поделиться