J'essaye d'assembler un petit morceau de code x86. Je suis sur une machine 32 bits et j'ai écrit le code suivant. Cela devrait juste ajouter des valeurs dans eax et ensuite revenir. Je réalise qu'il n'y aura pas de sortie. Quand je compile cela en utilisantSegfault avec assemblage x86
gcc main.S -o main
Il compile sans erreur. Mais quand je lance des erreurs de segmentation (gdb prétend qu'il se sépare de la première instruction movl). main.S contient le code suivant. Qu'est-ce que je fais mal?
.text
.globl main
main:
pushl %ebp
movl %esp, %ebp
movl 0, %eax
addl $3, %eax
addl $3, %eax
leave
ret