【发布时间】:2013-09-17 16:22:10
【问题描述】:
我正在尝试组装一些 32 位代码
gcc -o a.out code.s
但我收到以下消息:
Error: invalid instruction suffix for 'push'
从汇编器返回。导致这种情况的代码行如下:
pushl %ebp
我做了一些研究,说我需要使用 32-but 汇编器。谁能告诉我我是怎么做到的?
【问题讨论】:
我正在尝试组装一些 32 位代码
gcc -o a.out code.s
但我收到以下消息:
Error: invalid instruction suffix for 'push'
从汇编器返回。导致这种情况的代码行如下:
pushl %ebp
我做了一些研究,说我需要使用 32-but 汇编器。谁能告诉我我是怎么做到的?
【问题讨论】:
您可能正在尝试在 64 位系统上执行此操作,其中 gcc 默认为 -m64。
那么就这样做吧:
gcc -Wall -m32 code.s
【讨论】:
如果您有 32 位汇编代码,那么您需要使用 32 位工具集进行编译。看起来您正在使用 64 位工具集进行编译,这似乎是问题所在。您不能在一个模块中混合使用 32 位和 64 位代码。
您的选择:
【讨论】: