似乎-masm=intel
在 ICC 中就像 Clang 和 GCC 一样工作,至少在Compiler Explorer (13.0.1) 中的当前最新版本中。我尝试在数组示例上加载总和并生成以下程序集
testFunction(int*, int):
xor eax, eax #2.11
test esi, esi #3.23
jle ..B1.18 # Prob 50% #3.23
movsxd rdx, esi #3.3
...
而在史蒂夫-o的答案中指定-use_msasm
类似根本不起作用
英特尔的官方手册页说它是-use-msasm
而不是-use_msasm
,但这也不起作用
-use-msasm
(仅限 i32、i32em)
然而,那是 2006 年的 ICC 9.x,那是很久以前的事了,该选项可能在 9.x 和 13.x 之间的某个地方发生了变化
我进一步挖掘并意识到至少从ICC 16.0开始,该选项仅适用于源代码中的汇编块,而不是用于输出 Intel 语法
允许在 C 或 C++ 文件中使用汇编代码的块和整个函数。
描述
此选项允许在 C 或 C++ 文件中使用汇编代码的块和整个函数。
它允许使用 Microsoft* MASM 风格的内联汇编块而不是 GNU* 风格的内联汇编块。
备用选项
-fasm-blocks
如您所见,它只是-fasm-blocks
. 此外,尽管我不知道命运的命运,但该-use-asm
选项已被弃用-use-msasm
参考