如何在汇编中表示八进制数?

Ehs*_*ari 4 x86 assembly

例如,对于十六进制数字,我们可以使用0x98398or 8790h

八进制数值常量如何写?这有效吗?

mov eax, 70o
Run Code Online (Sandbox Code Playgroud)

Pet*_*des 8

NASM 支持 70o八进制的, 70q, 0o70, 和0q70

我推荐 0q70 版本,以避免未来(人类)读者将小写 o 误认为零的风险。我也不喜欢十六进制的尾随后缀样式,因为它很容易被错过。它有助于使用与其余常量相反的情况,但前导 0x 或 0q 更清晰。(对于十六进制,避免需要前导 0 使其成为数字常量而不是符号名称。)

至于十六进制常数支持,它肯定会因汇编器而异,因此只需检查汇编器手册即可。例如,大多数仅限 DOS/Windows 的汇编器不支持 0xDEADBEEF,仅支持 0DEADBEEFh 样式,所以我猜他们对八进制的选项也较少。

请参阅标签 wiki,获取各种汇编器手册(以及许多其他有用的资源和指南)的链接。

  • 只是观察到,如果您使用 YASM `0q` 和 `0o` 前缀将不起作用。 (2认同)