【发布时间】:2014-01-05 14:20:20
【问题描述】:
我正在尝试使用具有默认 at&t 语法的 gcc 内联程序集从堆栈中读取一个值。 我的代码是
unsigned int ret_val;
__asm volatile(
"movq %%rbp %0;\n"
:"=r"(ret_val)
);
我收到一个错误:
Assembler messages:
Error: junk `%eax' after register
这个错误是什么意思,我该如何摆脱它。 我已经阅读了关于 SO question 的一些类似问题,但没有得到他们的帮助。 我更感兴趣的是了解错误背后的原因以及正确的处理方法。
代码是为 x86_64 ubuntu 机器编写的。
谢谢
【问题讨论】:
标签: linux gcc assembly inline-assembly