x86 El ensamblaje pushl / popl no funciona con "Error: sufijo u operandos no válidos"
Soy un novato en la programación de ensamblajes, trabajando a través deProgramación desde cero en un escritorio Ubuntu x86_64 con GNU assembler v2.20.1.
He podido ensamblar / vincular ejecutar mi código, hasta que llegue a usar las instrucciones pushl / popl para manipular la pila. El siguiente código no se puede ensamblar:
.section .data # empty
.section .text
.globl _start
_start:
pushl $1 # push the value 1 onto the stack
popl %eax # pop 1 off the stack and into the %eax register
int $0x80 # exit the program with exit code '1'
Utilizando "como test.s -o test.o", estos errores aparecen en el terminal y no se crea test.o:
test.s: Assembler messages:
test.s:9: Error: suffix or operands invalid for 'push'
test.s:10: Error: suffix or operands invalid for 'popl'
He revisado la documentación y los operandos que estoy usando para pushl y popl son válidos. Esta no es exactamente una pregunta de depuración, entonces, ¿qué tiene de malo mi código? ¿O es mi ensamblador?