双美元符号在x86汇编(NASM)中意味着什么

Gre*_*vak 4 x86 assembly nasm

表达式是:

times 512-($-$$) db 0
Run Code Online (Sandbox Code Playgroud)

我知道美元符号意味着什么,但我不知道它是什么意思.

双美元符号是什么意思?

Pau*_*l R 14

当所有其他方法都失败时,请阅读精细手册(第3.5节"表达式"):

NASM在表达式中支持两个特殊标记,允许计算涉及当前的程序集位置:$和$$标记.$计算包含表达式的行开头的程序集位置; 所以你可以使用JMP $编写无限循环.$$评估到当前部分的开头; 所以你可以通过使用($ - $$)来判断你所在的部分有多远.

所以你问题中的例子就是用零填充当前部分的大小为512.