| 
 
| 在程序中,有时我们需要为一些数据保留一些存储空间,但不需要为它们初始化,而是在后续程序运行过程中被赋予实际值。
 
 这个时候,我们就需要用到汇编语言中的保留指令,这些指令用于在内存中分配指定大小的空间,但不对其中的数据进行初始化。
 
 常见的保留指令有:
 
 指令        用途
 RESB        保留一个 Byte(一个字节)
 RESW        保留一个 Word(两个字节)
 RESD        保留一个 Doubleword(四个字节)
 RESQ        保留一个 Quadword(八个字节)
 REST        保留十个字节空间(十个字节)
 多重定义
 一个程序可以定义多个数据定义的语句,例如:
 
 choice DB 'y'
 number DW 123
 bigbumber DQ 123456789
 这样定义的语句,编辑器会为这些变量分配连续的内存。
 
 多次初始化
 times 指令允许对同一值进行多次初始化,这样在定义数组和表示非常有用。可以使用如下语句,创建名为 stars、数据元素类型为DW 的数组,包含 9 个元素,每个初始化为 0.
 
 stars TIMES 9 DW 0        ;
 我们重温一下上面输出 9 个 * 的汇编程序:
 
 section .text
 global _start
 
 section .data
 stars times 9 db '*'
 
 _start:
 mov edx, 9
 mov ecx, stars
 mov ebx, 1
 mov eax, 4
 int 0x80
 
 mov eax, 1
 int 0x80
 同样编译运行后,会输出:
 
 *********
 | 
 |