如何在icc中使用gcc内联汇编?
我有以下带有 gcc 内联汇编样式的内联汇编的 C 代码
asm goto("1: jmp %l[t_no]\n"
"2:\n"
".section .altinstructions,\"a\"\n"
" .long 1b - .\n"
" .long 0\n"
" .word %P0\n"
" .byte 2b - 1b\n"
" .byte 0\n"
".previous\n"
: : "i" (bit) : : t_no);
我想用 icc 对其进行编译,但编译时出现错误:
error: invalid constant in assembly language instruction
asm goto("1: jmp %l[t_no]\n"
如何解决该问题?谢谢。
I have the following C code with inline assembly in gcc inline assembly style
asm goto("1: jmp %l[t_no]\n"
"2:\n"
".section .altinstructions,\"a\"\n"
" .long 1b - .\n"
" .long 0\n"
" .word %P0\n"
" .byte 2b - 1b\n"
" .byte 0\n"
".previous\n"
: : "i" (bit) : : t_no);
I would like to compile it with icc but there is an error when compiling:
error: invalid constant in assembly language instruction
asm goto("1: jmp %l[t_no]\n"
How to solve the problem? Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信您应该使用 -fasm-blocks 命令行选项。
I believe you should use the -fasm-blocks command line option.
icc 支持 Intel (nasm) 和 GNU 汇编程序风格。
对于 Gnu 语法,请使用
__asm__
原语:对于 Intel 语法,请使用
__asm{}
:icc supports both Intel (nasm) and GNU assembler styles.
For Gnu Syntax use the
__asm__
primitive:For Intel Syntax use
__asm{}
: