我正試圖組裝一小段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