gpt4 book ai didi

assembly - 是否可以在 NASM 中定义浮点常量 (`equ` )?

转载 作者:行者123 更新时间:2023-12-01 23:12:26 26 4
gpt4 key购买 nike

在 NASM 中,可以定义整数常量 (equ),但是,对浮点值执行相同操作会导致错误:

section .data
c1 equ 3 ; ok
v2 dq 3.14 ; ok
c2 equ 3.14 ; not ok: `my.asm:7: error: expression syntax error`

是否可以定义浮点常量?

我检查了 manual , 但信息很少。

最佳答案

不,equ 不适用于非整数。正如 fuz 所说的那样:

The equ directive defines symbols. The value of a symbol is an address or an integer of the same size as an address.

相反,您可以使用 %define c2 3.14 在您使用它的每个位置获取宏的文本替换。 (与在 equ 的位置对表达式求值一次的 equ 相反。)

equ 和宏(包括 %define)之间的区别对于像 .len equ $ - v2 这样的表达式很重要(因为 $ 稍后或在其他部分具有更高的值),或者涉及您稍后使用 %assign 更改的内容。但这对于数字文字常量并不重要;他们在任何地方总是以相同的方式进行评估。

关于assembly - 是否可以在 NASM 中定义浮点常量 (`equ` )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69582637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com