【发布时间】:2018-03-25 09:13:41
【问题描述】:
表达式为:
times 512-($-$$) db 0
我知道美元符号的含义,但我不知道它是双倍的含义。
双美元符号是什么意思?
【问题讨论】:
-
未来读者:
$,请参阅stackoverflow.com/questions/10361231/…。 (其中一个答案也提到了$$。)
表达式为:
times 512-($-$$) db 0
我知道美元符号的含义,但我不知道它是双倍的含义。
双美元符号是什么意思?
【问题讨论】:
$,请参阅stackoverflow.com/questions/10361231/…。 (其中一个答案也提到了$$。)
当所有其他方法都失败时,阅读Fine Manual(第 3.5 节“表达式”):
NASM 支持表达式中的两个特殊标记,允许计算涉及当前装配位置:$ 和 $$ 标记。 $ 计算为包含表达式的行首的装配位置;因此您可以使用 JMP $ 编写无限循环。 $$ 计算为当前部分的开头;因此,您可以使用 ($−$$) 来判断您在该部分中的距离。
所以你问题中的例子只是用零将当前部分填充到 512 的大小。
【讨论】:
$$ 计算为当前节的开头。您可以在此处的 nasm 文档中找到它:https://nasm.us/doc/nasmdoc3.html#section-3.5
【讨论】: