YASM 等同于 NASM 内置 __BITS__ 宏?
YASM equivalent for NASM built-in __BITS__ macro?
我有一段 nasm 汇编代码,我希望它与 yasm 兼容,但是 运行 它上面的汇编器在一些 nasm-specific 宏上给出了错误,并且包括,主要与条件相关
%if __BITS__ == 32
其中__BITS__
为当前位模式。
YASM 是否具有等效功能,或任何其他方式来根据位模式遵循代码路径?
您应该能够定义一个宏来代替 bits
,像这样(未测试):
%macro myBits 1
bits %1
%assign __BITS__ %1
%endmacro
当然,在这种情况下,您必须将源代码中出现的每个 bits 16
、bits 32
和 bits 64
替换为等效的 myBits
宏。
请注意,我不太确定 bits
在 YASM 中是如何实现的。它可能是一个宏本身(内部依赖于较低级别的指令,如 [bits]
)。在这种情况下,您可以重新定义 bits
宏并避免更改任何内容。
对于根本不使用 bits
指令的源代码,我只是用汇编程序的命令行参数定义 __BITS__
。
我有一段 nasm 汇编代码,我希望它与 yasm 兼容,但是 运行 它上面的汇编器在一些 nasm-specific 宏上给出了错误,并且包括,主要与条件相关
%if __BITS__ == 32
其中__BITS__
为当前位模式。
YASM 是否具有等效功能,或任何其他方式来根据位模式遵循代码路径?
您应该能够定义一个宏来代替 bits
,像这样(未测试):
%macro myBits 1
bits %1
%assign __BITS__ %1
%endmacro
当然,在这种情况下,您必须将源代码中出现的每个 bits 16
、bits 32
和 bits 64
替换为等效的 myBits
宏。
请注意,我不太确定 bits
在 YASM 中是如何实现的。它可能是一个宏本身(内部依赖于较低级别的指令,如 [bits]
)。在这种情况下,您可以重新定义 bits
宏并避免更改任何内容。
对于根本不使用 bits
指令的源代码,我只是用汇编程序的命令行参数定义 __BITS__
。