1
所以我想链接一个简单的程序集与C++,到目前为止没有运气。链接C++和程序集时分段错误
大会脚本
section .data
global getebx
getebx:
mov eax, 0x0
cpuid
mov eax, ebx
ret
C++
#include <iostream>
extern "C" unsigned getebx();
int main(){
std::cout << (const char *)getebx()<< std::endl;
return 0;
}
,并建立我只是运行以下命令。
nasm -f elf32 cpuidtest.asm
g++ -m32 -g main.cc cpuidtest.o
当我运行可执行文件时,出现了分段错误(Core Dumped)错误。所以我的下一个本能就是把它带到gdb。这是什么它返回:
program received signal SIGSEGV, Segmentation fault.
0xf7da0e86 in ??() from /lib/i386-linux-gnu/libc.so.6
我该如何解决这个问题?先谢谢你。
可悲的是,这并没有完全解决这个问题会不会是一个问题,这方面的看法?非常感谢你的帮助。 – Pnelego
@Pnelego查看更新。 – Jester
修复了一切,谢谢你的帮助。 (我不相信我没有看到)。 – Pnelego