В компиляторах, которые поддерживают расширения GNU, нет необходимости в отдельном ключевом слове emit
, просто используйте встроенную сборку GNU C:
asm(".byte 0x90"); // implicitly asm volatile
или .long
для создания 32-битной константы.
Встроенный ассемблер GNU C не проанализирован для обнаружения клобберов или чего-либо еще, поэтому вы можете просто asm("nop");
Если вы хотите использовать инструкции, которые изменяют регистры, вам обычно нужно сообщить об этом компилятору с помощью встроенной сборки GNU C Extended (output / input / clobbers). См https://stackoverflow.com/tags/inline-assembly/info.