【发布时间】:2021-03-04 13:39:53
【问题描述】:
NASM 手册讨论了这些宏,但据我所知,它并没有真正解释如何使用它们。 Section 3.4.6 状态:
浮点常量只能作为
DB、DW、DD、DQ、DT和DO的参数,或作为特殊运算符__?float8?__、@ 的参数987654329@、__?bfloat16?__、__?float32?__、__?float64?__、__?float80m?__、__?float80e?__、__?float128l?__、__?float128h?__
起初,我以为这是在数据部分之外使用浮点常量。但是当我尝试mov xmm0, __?float32?__(1.23) 时,我得到了“操作码和操作数的无效组合”错误。最终,我看到foo: dd __?float32?__(1.23) 有效。不过,这对我来说感觉很奇怪;如果你可以直接做dd 1.23,这些宏有什么意义?例如,如果您需要在四字中定义单精度浮点数,则可能是一种可能性。这真的是这些宏的唯一用途,还是我用错了?
【问题讨论】: