最近,我尝试扩展我对C语言的了解,并且遇到了一个使用generate可能会发出一个字节的程序。
__declspec(naked) void marker_begin() {
__asm {
_emit 0x51;
_emit 0x21;
_emit 0x1A;
_emit 0x14;
_emit 0x2C;
_emit 0x5B;
}
}
这可以用来做什么?
提前致谢。
最佳答案
您的C程序正在使用_asm
关键字执行内联汇编代码。 _asm是MSDN
中使用的Microsoft特定关键字。 __asm
关键字调用内联汇编程序。它之后必须是汇编指令,用大括号括起来的一组指令,或者至少是一对空括号。_emit
伪指令类似于DB
的MASM
指令。 _emit
是MSDN
专用的伪指令。 _emit
用于在当前文本段的当前位置定义单个立即字节。 _emit
一次只能定义一个字节,并且只能在文本段中定义。
关于c - 在C编程中, “emit”做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351352/