错误:'add'操作数类型不匹配

时间:2017-05-13 13:17:35

标签: assembly x86 att

我遇到了这段代码的问题:

.code32
.data
s: .asciz "Hello World!\n"
.text
.global main

main:
        pushl $s
        call printf
        addl $4, $esp

        movl $1, %eax
        movl $0, %ebx
        int $0x80
~                      

当我尝试使用" gcc -g -o文件file.s"进行编译时它向我显示了这个错误

错误:“add'

”的操作数类型不匹配

我正在运行32位Linux机器,gcc版本5.4.0。提前致谢

1 个答案:

答案 0 :(得分:1)

应该是addl $4, %esp。 GAS前缀$表示常量,其中%是寄存器。