ASM

asm 关键字采用单个操作数,该操作数必须是字符串文字。它具有实现定义的含义,但通常传递给实现的汇编器,汇编器的输出被合并到转换单元中。

asm 语句是一个定义,而不是表达式,因此它可能出现在块作用域或命名空间作用域(包括全局作用域)中。但是,由于内联汇编不能受 C++语言规则的约束,因此 asm 可能不会出现在 constexpr 函数中。

例:

[[noreturn]] void halt_system() {
    asm("hlt");
}