【发布时间】:2013-09-17 15:37:39
【问题描述】:
尝试学习 NASM 组装。我有一台带有 Ubuntu 的 64 位机器。最近我决定测试push 和pop 指令。我这样做:
nasm -felf64 Test.asm
显然它们在 64 位模式下不受支持。好吧,没问题,那我就做32吧:
nasm -felf Test.asm
现在,一如既往,
gcc Test.o
但它现在告诉我
i386 architecture of input file 'Test.o' is incompatible with i386:x86-64 output
我不太明白这里的错误。如果显然无法编译 32 位程序,我如何在 64 位机器上测试 push 和 pop?
【问题讨论】:
-
stackoverflow.com/questions/5050186/push-and-pop-on-amd64 ,asm 语言真的非常依赖于平台,你永远不应该期望给定的关键字/寄存器/函数可以在任何平台上工作,如果发生它是免费的一餐,但通常有很多差异,即使在具有不同“位数”的相同操作系统下也是如此。
-
@user2485710:我明白了。这对于试图在家做事的学生来说不是很好:(