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?