【问题标题】:In C programming, what does "emit" do?在 C 编程中,“发射”是做什么的?
【发布时间】:2013-05-03 03:56:38
【问题描述】:

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

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

}

这可以用来做什么? 提前致谢。

【问题讨论】:

标签: c byte emit


【解决方案1】:

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

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

【讨论】:

  • 非常感谢!我会支持你,但我没有声誉。
猜你喜欢
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 2017-09-12
  • 2017-09-01
  • 2013-07-31
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
相关资源
最近更新 更多