我正在尝试组装一些32位代码
gcc -o a.out code.s
但我收到以下消息:
Error: invalid instruction suffix for 'push'
从汇编程序返回。导致此问题的代码行如下:
pushl %ebp
我做了一些研究,说我需要使用32但是汇编程序。有人能告诉我这是怎么做到的吗?
答案 0 :(得分:0)
您可能尝试在64位系统上执行此操作,其中gcc默认为-m64
。
所以就这样做:
gcc -Wall -m32 code.s
答案 1 :(得分:0)
如果您有32位汇编代码,则需要使用32位工具集进行编译。看起来您正在使用64位工具集进行编译,这似乎是问题所在。您不能在一个模块中混合使用32位和64位代码。
您的选择: