Я пытаюсь собрать небольшой фрагмент кода x86.Я на 32-битной машине, и я написал следующий код.Он должен просто добавить значения в EAX, а затем вернуть.Я понимаю, что не будет никакого выхода.Когда я компилирую это, используя
gcc main.S -o main
Он компилируется без ошибокНо когда я запускаю его, он вызывает ошибки (GDB утверждает, что он вызывает ошибки в первой инструкции movl).main.S содержит следующий код.Что я делаю не так?
.text
.globl main
main:
pushl %ebp
movl %esp, %ebp
movl 0, %eax
addl $3, %eax
addl $3, %eax
leave
ret