В программировании на С, что делает "emit"?

Недавно я попытался расширить свои знания языка Си, и я наткнулся на программу, которая использует emit, чтобы, возможно, испустить байт.

__declspec(naked) void marker_begin() {
__asm {
    _emit 0x51;
    _emit 0x21;
    _emit 0x1A;
    _emit 0x14;
    _emit 0x2C;
    _emit 0x5B;
}

}

Для чего это может быть использовано? Заранее спасибо.

1 ответ

Решение

Ваша программа на C выполняет встроенный код ассемблера с помощью _asm ключевое слово. _asm - это ключевое слово Microsoft, используемое в MSDN, __asm Ключевое слово вызывает встроенный ассемблер. За ней должны следовать инструкция по сборке, группа инструкций, заключенная в фигурные скобки, или, по крайней мере, пустая пара фигурных скобок.

_emit псевдоинструкция похожа на DB директива MASM, _emit является MSDN конкретная псевдоинструкция. _emit используется для определения одного непосредственного байта в текущем местоположении в текущем текстовом сегменте. _emit может определять только один байт за раз и только в текстовом сегменте.

Другие вопросы по тегам