我正试图组装一小段x86代码。我在32位机器上,并且写下了以下代码。它应该只是将值添加到eax中,然后返回。我意识到不会有任何输出。当我编译这个使用Segfault与x86程序集
gcc main.S -o main
它编译没有任何错误。但是当我运行seg错误时(gdb声称它在第一个movl指令上发生段错误)。 main.S中有以下代码。我究竟做错了什么?
.text
.globl main
main:
pushl %ebp
movl %esp, %ebp
movl 0, %eax
addl $3, %eax
addl $3, %eax
leave
ret