例如,对于十六进制数字,我们可以使用0x98398
or 8790h
。
八进制数值常量如何写?这有效吗?
mov eax, 70o
Run Code Online (Sandbox Code Playgroud)
NASM 支持 70o
八进制的, 70q
, 0o70
, 和0q70
。
我推荐 0q70 版本,以避免未来(人类)读者将小写 o 误认为零的风险。我也不喜欢十六进制的尾随后缀样式,因为它很容易被错过。它有助于使用与其余常量相反的情况,但前导 0x 或 0q 更清晰。(对于十六进制,避免需要前导 0 使其成为数字常量而不是符号名称。)
至于十六进制常数支持,它肯定会因汇编器而异,因此只需检查汇编器手册即可。例如,大多数仅限 DOS/Windows 的汇编器不支持 0xDEADBEEF,仅支持 0DEADBEEFh 样式,所以我猜他们对八进制的选项也较少。
请参阅x86标签 wiki,获取各种汇编器手册(以及许多其他有用的资源和指南)的链接。