使用32位汇编程序

时间:2013-09-17 16:22:11

标签: assembly 32-bit

我正在尝试组装一些32位代码

gcc -o a.out code.s

但我收到以下消息:

Error: invalid instruction suffix for 'push'

从汇编程序返回。导致此问题的代码行如下:

    pushl   %ebp

我做了一些研究,说我需要使用32但是汇编程序。有人能告诉我这是怎么做到的吗?

2 个答案:

答案 0 :(得分:0)

您可能尝试在64位系统上执行此操作,其中gcc默认为-m64

所以就这样做:

gcc -Wall -m32 code.s

答案 1 :(得分:0)

如果您有32位汇编代码,则需要使用32位工具集进行编译。看起来您正在使用64位工具集进行编译,这似乎是问题所在。您不能在一个模块中混合使用32位和64位代码。

您的选择:

  1. 使用32位工具编译,并发出32位对象。
  2. 将汇编代码移植到64位。