例如,对于十六进制数字,我们可以使用0x98398
或8790h
。
如何编写八进制数字常量?这有用吗?
mov eax, 70o
答案 0 :(得分:2)
取决于汇编程序,但大多数汇编程序包括NASM允许0o,o代表八进制。就像你使用0x,其中x代表十六进制。
mov ax,310q ; octal
mov ax,310o ; octal again
mov ax,0o310 ; octal yet again
mov ax,0q310 ; octal yet again
信息来源:Here。
同样,它不是0或所有汇编程序的上述语法。它可能因汇编程序而异,但NASM确实使用上述语法,因为您可以看到提供的链接以获取更多信息。如果你有其他装配工,请查看他们的手册,如FASM:Here。 GAS:Here
答案 1 :(得分:2)
NASM supports 70o
,70q
,0o70
和0q70
。
我推荐使用的是tech70版本,以避免未来(人类)读者将小写字母o误认为零的风险。我也不喜欢十六进制的尾随后缀样式,因为它很容易被遗漏。它有助于从常量的其余部分使用相反的情况,但是领先的0x或者更好的是更清楚。 (对于十六进制,避免使用前导0使其成为数字常量而不是符号名称。)
对于十六进制常量支持it will certainly vary by assembler,所以请查看汇编程序手册。例如大多数DOS / Windows专用的汇编程序不支持0xDEADBEEF,只支持0DEADBEEFh样式,所以我猜他们的八进制选项也少了。
有关各种汇编程序手册(以及许多其他有用的资源和指南)的链接,请参阅x86标记wiki。