
C++ é uma linguagem de programação abrangente e poderosa, mas existem poucas situações altamente especializadas que ela não consegue resolver.
Para essas situações, C++ oferece uma opção que permite descartar um código Assembly a qualquer momento.
Esta opção é o uso da instrução __asm__() ou somente asm(). Ou seja, a linguagem Assembly pode ser incorporada diretamente no programa C++.
Nesse exemplo nota-se que através do código Assembly:
3 para o registrador eaxebxsum para saída
asm.cpp
#include <iostream>
int main() { 
  int sum; 
  __asm__ ( "movl $3, %%eax;"
      "movl $6, %%ebx;"
      "addl %%ebx, %%eax ":"=a"(sum)); 
  std::cout << sum << '\n'; 
  return 0; 
} Após compilar e rodar:
g++ asm.cpp
./a.outA saída será a soma:
9.
Caso queira evitar o uso dos underlines funcionará do mesmo jeito:
#include <iostream>
int main() { 
  int sum; 
  asm("movl $3, %%eax;"
      "movl $6, %%ebx;"
      "addl %%ebx, %%eax ":"=a"(sum)); 
  std::cout << sum << '\n'; 
  return 0; 
} O fato de usar assim __asm__ é que o programador tem um maior controle dos recursos nativos do C++.
Para mais informações acesse: https://en.cppreference.com/w/cpp/language/asm.