2

我正在用这本教科书学习x86_64汇编程序(yasm) 。在那里,我遇到了以下定义文件访问标志的行:

O_RDONLY        equ    000000q
O_WRONLY        equ    000001q
O_RDWR          equ    000002q

问题是他们的价值观是什么意思?代表什么q

4

1 回答 1

9

在 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
于 2018-03-17T17:34:46.847 回答