Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我最近尝试扩展我对 C 语言的知识,并且遇到了一个使用 emit 的程序,它可能会发出一个字节。
__declspec(naked) void marker_begin() { __asm { _emit 0x51; _emit 0x21; _emit 0x1A; _emit 0x14; _emit 0x2C; _emit 0x5B; }
}
这可以用来做什么?提前致谢。
您的 C 程序正在使用_asm关键字执行内联汇编代码。_asm 是 Microsoft 特定的关键字,用于MSDN. 关键字调用内联__asm汇编器。它后面必须跟一个汇编指令,一组用大括号括起来的指令,或者至少是一对空的大括号。
_asm
MSDN
__asm
_emit伪指令类似于的DB指令MASM。_emit是MSDN特定的伪指令。_emit用于在当前文本段的当前位置定义单个立即字节。_emit一次只能定义一个字节,并且只能在文本段中定义。
_emit
DB
MASM