c - 编译器不正确的注册表 %rax C 代码问题
问题描述
我在 C 中编译代码时遇到问题:gcc test.c
组装错误:
注册表不正确 « %rax » 与后缀 « l » 一起使用
问题来自 __asm_volatile() 函数
我有一个 64 位编译器
void * get_current()
{
unsigned long curr;
__asm__ __volatile__ (
"movl %%esp, %%eax ;"
"andl %1, %%eax ;"
"movl (%%eax), %0"
: "=r" (curr)
: "i" (~8191)
);
return (void *) curr;
}
我无法编译代码,有什么解决办法吗?
解决方案
推荐阅读
- angular - 使用 Angular 7 组件在页面刷新时构建面包屑
- woocommerce - 如果自定义结帐字段中有值,如何将购物车总数归零?
- javascript - 如何访问不同组件中的商店?
- r - 闪亮的服务器找不到闪亮的默认css和js文件
- c++ - clang 是否支持 init_priority
- verilog - 在 Verilog 中综合设计时的时序问题
- android - 在方法 A() 在 onStart() 内完成后如何在 onResume() 内启动方法 B()
- javascript - 使用 JavaScript 循环查找数组中的最大数
- excel - excel数据透视表中的计算字段
- reactjs - 如何更有效地使用道具?