繁体   English   中英

内联asm调用给出错误

[英]inline asm call gives error

我在C函数中使用汇编代码。 但是gcc对于以下代码给出了unsupported instruction 'mov'错误:

uint32_t faulting_address;
asm volatile("mov %%cr2, %0" : "=r" (faulting_address));  

我不明白这有什么问题。

语法是正确的,但是错误的可能性更大,因为您要编译的是64位目标,在这种情况下, mov需要是64位。 只要改变faulting_addressuint64_t ,它会编译。

另外,如果您希望它是32位的,则需要使用-m32或其他类似的选项来编译32位目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM