如果您希望在C++中编写内联程序集(使用“英特尔编译器”编译C++时),您会使用哪种程序集语法?是FASM/NASM还是MASM?你使用的是哪种操作系统,这有关系吗?(或者英特尔编译器把这种区别抽象出来了吗?)?
根据 Intel ,“英特尔C++编译器”同时支持Microsoft风格和类GNU风格的内联汇编:
内联组件 Microsoft*样式内联程序集 “英特尔C++编译器”支持Microsoft风格的内联汇编。看见 有关正确语法,请参阅Microsoft文档。 GNU*风格内联汇编(仅限IA-32体系结构和英特尔64体系结构) “英特尔C++编译器”支持类似GNU风格的内联汇编。这个 语法如下: asm-keyword [ volatile-keyword ] ( asm-template [ asm-interface ] ) ; 注释 如果汇编代码使用AT&吨* System V/386语法。
“英特尔C++编译器”支持Microsoft风格的内联汇编。看见 有关正确语法,请参阅Microsoft文档。
“英特尔C++编译器”支持类似GNU风格的内联汇编。这个 语法如下:
asm-keyword [ volatile-keyword ] ( asm-template [ asm-interface ] ) ;
如果汇编代码使用AT&吨* System V/386语法。