Tag: 机机器语言

如何调用存储在char数组中的机器码?

我试图调用本地机器语言代码。 这是我到目前为止(它得到一个总线错误): char prog[] = {'\xc3'}; // x86 ret instruction int main() { typedef double (*dfunc)(); dfunc d = (dfunc)(&prog[0]); (*d)(); return 0; } 它确实调用了该函数,并且它到达了ret指令。 但是当它试图执行ret指令时,它有一个SIGBUS错误。 是因为我在一个没有被执行的页面上执行代码或类似的东西? 那么我在这里做错了什么?