DB指令是”define byte”的缩写,也就是往文件里直接写入1个字节的指令,小写的db也一样。只要有了DB指令,就可以做出任何数据。可以直接用它写字符串。在写字符串的时候,汇编语言会自动的查找字符串中每一个字符所对应的编码,然后把它们一个字节一个字节地排列起来。这个功能非常方便,也就是说,当我们想要变更输出信息的时候,就再也不用自己去查字符编码了。
RESB指令是”reverse byte”的略写,如果想要从现在的地址开始空出10个字节来,就可以写成RESB 10,意思是我们预约了这10个字节(可以想象成在对号入座的火车里,预定了10个连号座位)。而且nask不仅仅是把指定的地址空出来,它还会在空出来的地址上自动填入0x00。所以用这个指令可以输出很多个0x00。
RESB ox1fe-$中这个美元符号是个变量,可以告诉我们这一行现在的字节数。在程序里,前面已经输出了132字节,所以这里的$就是132,因此nask先用0x1fe减去132,得出378这一结果,然后连续输出378个字节的0x00。
那我们为什么不直接写378,而非要用$呢?只是因为如果将显示信息从”hello world”变成”thsi is a pen.”的话,中间要输出0x00的字节数也会随之变化。换句话说,我们必须保证软盘的第510字节(即第0x1fe字节)开始的地方是55 AA。如果在程序中使用美元符号($)的话,汇编语言会自动计算需要输入多少个00,我们也就可以很轻松的改写输出信息了。
数字前面加上0x,就成了十六进制数,不加0x,就是十进制数。这一点和C语言是一样的。
DW指令和DD指令是”define word”和”define double-word”的缩写,是DB指令的”堂兄弟”。word的本意是”单词”,但在计算机汇编语言的世界里,word指的是”16位”的意思,也就是2个字节。”double-word”是”32位”的意思,也就是4个字节。
;是注释命令。
遗憾的是现在还不能显示汉字。