例如,对于十六进制数,我们可以使用0x98398或8790h。
如何编写八进制数字常量?这行得通吗?
mov eax, 70o发布于 2016-09-19 10:07:51
八进制的NASM supports 70o、70q、0o70和0q70。
我推荐0q70版本,以避免将来的(人类)读者将小写-o误认为0的风险。我也不是十六进制尾随后缀样式的粉丝,因为它很容易遗漏。它有助于使用与常量的其余部分相反的情况,但前导0x或0q更清晰。(对于十六进制,不需要使用前导0来使其成为数值常量而不是符号名称。)
至于十六进制常量支持,it will certainly vary by assembler,所以只需要检查你的汇编手册。例如,大多数仅用于DOS/Windows的汇编程序不支持0xDEADBEEF,只支持0DEADBEEFh样式,所以我猜他们对八进制的选择也较少。
有关各种汇编手册(以及许多其他有用的资源和指南)的链接,请参阅x86标签维基。
发布于 2016-09-19 10:07:35
这取决于汇编器,但包括NASM在内的大多数汇编器都允许0,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。气体:Here
https://stackoverflow.com/questions/39564402
复制相似问题