我正在尝试将一些用Visual Studio编写的汇编代码移植到Linux上的GNU内联汇编中。原始代码使用_emit,MSDN将其描述为伪指令,并解释为:
_emit伪指令类似于MASM的DB指令。您使用_emit在当前文本段中的当前位置定义单个立即数字节点。但是,_emit一次只能定义一个字节,并且只能在文本段中定义字节。它使用与INT指令相同的语法。
我如何在Linux上做同样的事情?
答案 0 :(得分:15)
要发出字节0x12(例如),请执行:
asm __volatile__ (".byte 0x12");
尽管如此,在启用优化的情况下,您可能会得到令人惊讶的结果。