C++ 关键词:asm
来自cppreference.com
用法
示例
注意,这个示例以 GCC/Clang 在 Linux 的 x86_64 平台上正常工作,但不保证别处也行, 因为 asm 声明是条件性支持并 (C++11 起)由实现定义的。
运行此代码
#include <cstring> int main() noexcept { const char* const c_string = "Hello, world!\n"; asm (R"( movq $1, %%rax # sys_write 的 syscall 号 movq $1, %%rdi # 文件描述符 1 (stdout) movq %0, %%rsi # 指向 C 字符串的指针 movq %1, %%rdx # C 字符串的长度 syscall # 调用 OS 系统调用处理函数 )" : // 无输出操作数 : "r"(c_string), // 输入: 指向 C 字符串的指针 "r"(std::strlen(c_string)) // 输入: C 字符串的大小 : "%rax", "%rdi", "%rsi", "%rdx" // 占用寄存器 ); }
输出:
Hello, world!