【发布时间】:2016-09-19 02:04:06
【问题描述】:
例如对于十六进制数字,我们可以使用0x98398 或8790h。
如何编写八进制数字常量?这行得通吗?
mov eax, 70o
【问题讨论】:
例如对于十六进制数字,我们可以使用0x98398 或8790h。
如何编写八进制数字常量?这行得通吗?
mov eax, 70o
【问题讨论】:
NASM supports 70o、70q、0o70 和 0q70 用于八进制。
我推荐 0q70 版本,以避免未来(人类)读者将小写字母 O 误认为零的风险。我也不喜欢十六进制的尾随后缀样式,因为它很容易错过。它有助于使用与常量其余部分相反的情况,但前导 0x 或 0q 更清晰。 (对于十六进制,避免需要前导 0 使其成为数字常量而不是符号名称。)
至于十六进制常量支持,it will certainly vary by assembler,所以只需查看您的汇编手册。例如大多数仅 DOS/Windows 的汇编器不支持 0xDEADBEEF,只支持 0DEADBEEFh 样式,所以我猜他们对八进制的选择也较少。
请参阅x86 标签 wiki 以获取各种汇编器手册(以及许多其他有用的资源和指南)的链接。
【讨论】:
0q 和 0o 前缀将不起作用。