Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

2.14.2 __asm 关键字

__asm 关键字(注意开头的两个下划线)是 asm 关键字的同义字。 在使用 -pedantic 时,编译器将针对 asm 关键字的使用发出警告。请使用 __asm 避免这些警告。__asm 语句采用以下形式:

__asm("string");

其中 string 是有效的汇编语言语句。

该语句将给定的汇编程序文本直接发送到汇编文件。在文件作用域(而不是函数作用域)声明的基本 asm 语句称为全局 asm 语句。其他编译器将其称为顶级 asm 语句。

全局 asm 语句以其指定顺序发出,保留相对于彼此的顺序,并保持相对于前后函数的位置。

在较高优化级别中,编译器可能会删除已确定不被引用的函数。由于编译器得出从全局汇编语言语句中引用了哪些函数的结果,因此可能会无意中删除这些函数。

请注意,那些提供模板及操作数规范的扩展 asm 语句不允许作为全局语句。__asm__asm__asm 关键字的同义字,可以互换使用。

指定特定于体系结构的指令时,可能需要指定正确的 -xarch 值以避免发生编译错误。