它的目的?
- 在一个程序中,有时需要将数据临时保存起来以备后用。使用寄存器不太现实,因为它的数量很少,且还要在后续的指令中使用。
- 因此,最好的办法是在内存中专门留出一些空间来保存这些临时数据。
如何实现?
- 尽管我们的目的仅仅是分配一些空间,但是要达到这个目的必须初始化一些初始数据来“占位”。
- 这就好比是排队买火车票,你可以派任何无关的人去帮你占个位置,真正轮到你买的时候,你再出现。
DB的使用
- 要放在程序中的数据是用 DB 指令来声明(Declare)的,DB 的意思是声明字节(Declare Byte)
- 跟在它后面的操作数都占一个字节的长度(位置)。
- 注意,如果要声明超过一个以上的数据,各个操作数之间必须以逗号隔开。
比如:
number db 0
或者
number db 0,0,0,0,0
- 使用时在前面设置一个标号,然后同时使用标号来操作这些临时变量的地址。
除此之外:
DW(Declare Word)用于声明字数据,
DD(Declare Double Word)用于声明双字(两个字)数据,
DQ(Declare Quad Word)用于声明四字数据。
伪指令
- DB、DW、DD 和 DQ 并不是处理器指令,它只是编译器提供的汇编指令,所以称做 伪指令(pseudo Instruction)。
- 伪指令是汇编指令的一种,它没有对应的机器指令,所以它不是机器指令的助记符,仅仅在编译阶段由编译器执行,编译成功后,伪指令就消失了,所以在程序执行时,伪指令是得不到处理器光顾的,实际上,程序执行时,伪指令已不存在。
资料参考
- 《x86汇编语言:从实模式到保护模式》(编著:李忠 王晓波 余洁)