x86 O pushl / popl do conjunto não funciona com “Erro: sufixo ou operandos inválidos”

Sou novato em programação de montagem, trabalhando comProgramação Ground Up em uma área de trabalho Ubuntu x86_64 com o GNU assembler v2.20.

Consegui montar / vincular executar meu código, até usar instruções pushl / popl para manipular a pilha. O código a seguir falha ao montar:

 .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'

Usando "como test.s -o test.o", esses erros aparecem no terminal e test.o não é criado:

test.s: Assembler messages: 
test.s:9: Error: suffix or operands invalid for 'push'
test.s:10:  Error: suffix or operands invalid for 'popl'

Verifiquei a documentação e os operandos que estou usando para pushl e popl são válidos. Esta não é exatamente uma pergunta de depuração - então o que há de errado com meu código? Ou é meu montador?

questionAnswers(5)

yourAnswerToTheQuestion