C++ keyword: asm
 
 
 From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
C++ language 
 
  
  
 General topics
 Conditional execution statements
 Iteration statements (loops)
 Jump statements
 Dynamic exception specifications (until C++17*)
noexcept specifier (C++11) Exceptions
 Namespaces
 Types
 Specifiers
 User-defined (C++11)
 Utilities
 Attributes (C++11)
 Types
 Type alias declaration (C++11)
 Casts
 Memory allocation
 Class-specific function properties
 Special member functions
 Miscellaneous
Keywords 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
(C++11)
(C++11)
asm
(*)
(C++20)
(C++11)
(C++11)
(C++20)
(C++20)
(C++11)
(C++20)
(C++26)
  (C++20)
(C++20)
(C++20)
(C++11)
(C++11)
  (C++11)
 Identifiers with special meaning
[edit] Usage
[edit] Example
Note that while this example works well with GCC/Clang on x86_64 platform under Linux, it's not guaranteed elsewhere as asm declaration is conditionally-supported and(since C++11) implementation defined.
Run this code
#include <cstring> int main() noexcept { const char* const c_string = "Hello, world!\n"; asm (R"( movq 1,ドル %%rax # syscall number for sys_write movq 1,ドル %%rdi # file descriptor 1 (stdout) movq %0, %%rsi # pointer to the c‐string movq %1, %%rdx # length of the c‐string syscall # invokes an OS system-call handler )" : // no output operands : "r"(c_string), // input: pointer to the c‐string "r"(std::strlen (c_string)) // input: size of the c‐string : "%rax", "%rdi", "%rsi", "%rdx" // clobbered registers ); }
Output:
Hello, world!