风河编译器 c里如何嵌入汇编

发布于 2022-09-30 19:39:54 字数 469 浏览 28 评论 0

  1. static int __ilog2(unsigned int x)
  2. {
  3.         int lz = 0;
  4.         asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x));
  5.         return 31 - lz;
  6. }

复制代码以上代码GCC下可以编译通过,在风河下编译出错,错误提示:Unsupported GNU extension: inline assembly statement

看手册风河对c中嵌入汇编的,可惜没看懂,希望大家帮忙解答一下,谢谢啦

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

总攻大人 2022-10-07 19:39:54

表示不支持GNU扩展的嵌入汇编语法,所以,你还是需要看看手册。

岁月无声 2022-10-07 19:39:54

不同编译器嵌汇编的手段当然不一样,多看看它的帮助文档

丶视觉 2022-10-07 19:39:54

以上代码GCC下可以编译通过,在风河下编译出错,错误提示:Unsupported GNU extension: inline assembly st ...
cmesunoom 发表于 2011-03-23 08:52

用intel的格式看看。在内嵌的开头加上.intel_syntax,估计可能不行,不过是尝试一下。

`as' now supports assembly using Intel assembler syntax.
`.intel_syntax' selects Intel mode, and `.att_syntax' switches back to
the usual AT&T mode for compatibility with the output of `gcc'.

余生一个溪 2022-10-07 19:39:54

这种问题问风河呗。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文