Что эквивалентно _emit в Linux? - PullRequest
8 голосов
/ 08 апреля 2009

Я пытаюсь портировать некоторый ассемблерный код, написанный в Visual Studio, на встроенную сборку GNU в Linux. Оригинальный код использует _emit , который MSDN описывает как псевдоинструкцию и объясняет как:

Псевдоинструкция _emit аналогична директиве DB MASM. Вы используете _emit для определения одного непосредственного байта в текущем местоположении в текущем текстовом сегменте. Однако _emit может определять только один байт за раз, и он может определять только байты в текстовом сегменте. Он использует тот же синтаксис, что и инструкция INT.

Как я могу сделать то же самое в Linux?

1 Ответ

15 голосов
/ 08 апреля 2009

Чтобы выдать байт 0x12 (например), выполните:

asm __volatile__ (".byte 0x12");

Хотя вы можете получить неожиданные результаты при включенной оптимизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...