Я пробираюсь через «Программирование с нуля» и написал свою первую программу:
.section .text
.globl _start
_start:
movl $1, %eax
movl $0, %ebx
int $0x80
У меня есть пара вопросов по этому поводу:
- Какая сборкаэто использует? Там написано:
«В этой книге описывается язык ассемблера для процессоров x86 и операционной системы GNU / Linux.»
Однако, если я перейду к https://godbolt.org и выберите Assembly, есть буквально сотни вариантов - ARM64 gcc 8.2, ARM gc 8.2, MIPS gcc 5.4, ... Почему существует так много версий? Это все "сборка для x86 linux"?
Иногда я видел команды, написанные как
movl $0, %ebx
и как
movl %ebx, $0
. Почему они иногда меняются местами?