米脂
请参阅x86标签Wiki,以获取到汇编器手册的链接,以及许多其他内容。不同的x86汇编器对十六进制常量支持以下一种或两种语法:0xDEADBEEF:NASM(和兼容),GNUas,FASM,MSVC内联汇编(但不是 MASM)0DEADBEEFh:NASM(和兼容),FASM,MASM和TASM。仅限DOS / Windows的汇编器通常仅支持...h语法。便携式汇编程序通常支持0x...语法,或两者都支持。请注意0开头:数字常量始终必须以数字开头,以将其与符号名称区分开。还要注意,汇编器(如C编译器)可以在汇编时评估表达式,因此可以编写foo & 0xF(如果foo是用foo equ 0xABC或定义的汇编器常量)。您甚至可以从标签中添加/减去标签(它们是链接时常量,而不是汇编时),因此诸如此类的东西mov eax, OFFSET label - 20仍会汇编为mov r32, imm32。从NASM手册的常量部分:一些示例(都产生完全相同的代码): mov ax,200 ; decimal mov ax,0200 ; still decimal mov ax,0200d ; explicitly decimal mov ax,0d200 ; also decimal mov ax,0c8h ; hex mov ax,$0c8 ; hex again: the 0 is required mov ax,0xc8 ; hex yet again mov ax,0hc8 ; still hex mov ax,310q ; octal mov ax,310o ; octal again mov ax,0o310 ; octal yet again mov ax,0q310 ; octal yet again mov ax,11001000b ; binary mov ax,1100_1000b ; same binary constant mov ax,1100_1000y ; same binary constant once more mov ax,0b1100_1000 ; same binary constant yet again mov ax,0y1100_1000 ; same binary constant yet again大多数汇编器还允许使用字符文字,例如'0'ASCII零。甚至'0123'对于打包成32位整数的四个ASCII数字。有些支持转义序列(\n'),有些则支持(例如YASM)。NASM仅支持反引号内的转义序列,而不支持双引号。其他平台:ARM汇编器:0xDEADBEEF有效。我认为0x是典型的。0 ... h主要是DOS的东西。