试图学习NASM大会.我有一台64位机器,带有Ubuntu.最近我决定测试推送和弹出指令.我这样做:
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?
解决方法:
“-m32”怎么样?
我认为你需要关心依赖库(例如libc),参见:Use 32bit shared library from 64bit application?