Описание тега inline-assembly

Сборка, встроенная в исходный код на другом, более высоком языке, например сборка x86, встроенная в C или C++.

Встроенная сборка используется в языке более высокого уровня для обеспечения доступа к функциям, не предоставляемым встроенными функциями. c и C++ - наиболее распространенные языки "хоста", которые позволяют использовать встроенный asm.

Не используйте встроенный asm, не осознавая потенциальных недостатков производительности, а также очевидных недостатков ремонтопригодности / переносимости. Компилятор не может понять встроенный asm для распространения констант и других оптимизаций. Если вы можете заставить компилятор генерировать эквивалентный asm из обычного исходного кода без встроенного asm, это почти всегда предпочтительнее.

Ресурсы

X86 тега вика имеет массу хороших вещей для этой архитектуры, и сборка тегов вики также имеют несколько ссылок.


Встроенный asm GNU C работает таким же образом для архитектур, отличных от x86 (вы по-прежнему используете операнды ввода и вывода с ограничениями для получения данных в / из операторов asm).

Есть различия: у многих целей нет синтаксиса ограничения для запроса определенного регистра (например, x86's "a" для eax/rax).