在C编程中,“发出”有什么作用?

时间:2013-05-03 03:56:39

标签: c byte emit naked-objects

我最近尝试扩展我对C语言的了解,并且遇到了一个使用emit的程序,可能发出一个字节。

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

}

这可以用于什么? 提前谢谢。

1 个答案:

答案 0 :(得分:10)

您的C程序正在使用_asm关键字执行内联汇编代码。 _asm是MSDN中使用的Microsoft特定关键字。 __asm关键字调用内联汇编程序。必须紧接着是汇编指令,括在括号中的一组指令,或者至少是一对空括号。

_emit伪指令类似于DB的{​​{1}}指令。 MASM_emit特定的伪指令。 MSDN用于在当前文本段中的当前位置定义单个立即数字节点。 _emit一次只能定义一个字节,并且只能在文本段中定义。