在海湾合作委员会中实现Borland的__emit__宏

Implementing Borland's __emit__ macro in GCC

本文关键字:Borland emit 实现 委员会      更新时间:2023-10-16

在Borland中,有一个宏__emit__,"一个将文字值直接注入目标代码的伪函数"(James Holderness)。

gcc/g++有等价物吗?(我似乎在文档中找不到)

如果没有,如何在我的C++源代码中实现它?


用法可以在 变形代码示例

你可以看看.byte汇编指令:

asm __volatile__ (".byte 0xEA, 0x00, 0x00, 0xFF, 0xFF");

GCC 的优化器有时会丢弃asm语句,如果他们确定不需要输出变量。此外,如果优化器认为代码将始终返回相同的结果(即其输入值在调用之间没有变化),则可能会将代码移出循环。使用可变限定符将禁用这些优化。

无论如何,您应该注意许多极端情况(例如,gcc 在转到后跳过 asm 代码......