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?

Respuestas a la pregunta(5)

Su respuesta a la pregunta