版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41885085/article/details/79661986
很多书籍由于时间原因,示例代码用的是32位的,但现在很多电脑都是64位了,往往就会出现一些问题(ps:我们老师说以后教学可能不用x86汇编了,改用mips汇编)
Ubuntu 14.04使用NASM编译时用ld链接程序出现:i386 架构于输入文件 hello.o 与 i386:x86-64 输出不兼容(ld:i386 architecture of input file 'hello.o' is incompatible with i386: x86-64 output)
然后想当然地elf32,心想这下没问题了
error: instruction not supported in 64-bit mode
原来用了pop push,而pop,push在64位电脑中自然是64位了,所以我。。。。。
没办法搜索吧
https://www.cnblogs.com/EasonJim/p/7231913.html给出了方法
nasm -f elf -g -F stabs xxxxx.asm -o xxxxx.o
ld -m elf_i386 -o xxxxxx xxxxx.o
由于我要在汇编中调用C程序,所以,又出错了,忘了gcc也要改成32位的
改了后终于正常了
————————————————
版权声明:本文为CSDN博主「weixin_41885085」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41885085/article/details/79661986