我正在编译 32 位二进制文件,但想在其中嵌入一些 64 位程序集。
void method() {
asm("...64 bit assembly...");
}
Run Code Online (Sandbox Code Playgroud)
当然,当我编译时,我会收到有关引用错误寄存器的错误,因为寄存器是 64 位的。
evil.c:92: Error: bad register name `%rax'
Run Code Online (Sandbox Code Playgroud)
是否可以添加一些注释,以便 gcc 将使用 64 位汇编器来处理 asm 部分。我有一个单独编译的解决方法,使用 PROT_EXEC|PROT_WRITE 映射到页面中,然后复制到我的代码中,但这非常尴尬。
归档时间: |
|
查看次数: |
2549 次 |
最近记录: |