我正在用这本教科书学习x86_64
汇编程序(yasm
) 。在那里,我遇到了以下定义文件访问标志的行:
O_RDONLY equ 000000q
O_WRONLY equ 000001q
O_RDWR equ 000002q
问题是他们的价值观是什么意思?代表什么q
?
在 NASM/YASM 中,它是一个后缀,表示数字为八进制。从文档
3.5.1。数值常数
数字常量只是一个数字。NASM 允许您以多种方式以各种数字基数指定数字:您可以为 H、Q或 O 加上后缀,B 表示十六进制、八进制和二进制,或者您可以按照 C 的样式为十六进制添加前缀 0x ,或者您可以按照 Borland Pascal 的样式为十六进制添加 $ 前缀。但是请注意,$ 前缀作为标识符的前缀具有双重作用(参见第 3.1 节),因此以 $ 符号为前缀的十六进制数字必须在 $ 后面有一个数字而不是字母。
一些例子:
mov ax,100 ; decimal mov ax,0a2h ; hex mov ax,$0a2 ; hex again: the 0 is required mov ax,0xa2 ; hex yet again mov ax,777q ; octal mov ax,777o ; octal again mov ax,10010011b ; binary