1.预备知识:Debug的使用
-
前面实验中,讲了Debug一些主要命令的用法,这里,我们在补充一些关于Debug的知识
-
关于D命令
-
上次试验中,我们知道,D命令式查看内存单元的命令,可以用:
-
d 段地址:偏移地址的格式查看指定内存单元的内容,上次实验中,D命令后面的段地址和偏移地址都是直接给出的
-
现在,我们知道段地址是放在段寄存器中的,在D命令后面直接给出段地址,是Debug提供的一种直观的操作方式。
-
D命令是由Debug执行的,Debug在执行“d 1000:0”这样的命令时,也会先将段地址1000送入段寄存器中
-
Debug是靠什么来执行D命令的?当然是一段程序
-
谁来执行这段程序?当然是CPU
-
CPU在访问内存单元的时候从哪里得到内存单元的段地址?从段寄存器中得到。
-
所以,Debug在其处理D命令的程序段中,必须有将段地址送入段寄存器的代码
-
段寄存器有4个:CS、DS、SS、ES,将段地址送入哪个段寄存器呢?
-
首先不能是CS,因为CS:IP必须指向Debug处理D命令的代码,也不能是SS,因为SS:SP要指向栈顶。
-
这样就只剩下DS和ES可以选择,放在哪里呢?我们知道,访问内存的指令如“mov ax,[0]”等一般都默认段地址在ds中,所以Debug在执行如:“d 段地址:偏移地址”这