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

问题描述 投票:0回答:2

我最近试图扩展我的 C 语言知识,我遇到了一个使用 emit 的程序,可能会 emit 一个字节。

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

}

这可以用来做什么? 预先感谢。

c byte emit
2个回答
15
投票

您的 C 程序正在使用

_asm
关键字执行内联汇编代码。 _asm 是
MSDN
中使用的 Microsoft 特定关键字。
__asm
关键字调用内联汇编器。它后面必须跟着一条汇编指令、一组用大括号括起来的指令,或者至少是一对空大括号。

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


0
投票
例如,使用

Turbo C 2.0,1988,16 位的 __émit,您可以访问 32 位指令。你可以放置几个字符和无符号字符(我想也是 int 吗?) __发出(0xB8,17u); (发出后,2 _)

© www.soinside.com 2019 - 2024. All rights reserved.