目录
一.Debug的使用
我一开始对着书上那 windows 2000教程开始郁闷,我这Win11该怎么搞。于是我上网搜索发现了一个APP可以用来操作,这里我找到了dosbox的下载地址:https://www.dosbox.com/download.php?main=1
这里我转载一个博主的文章,我就是从那里学到的https://blog.youkuaiyun.com/2301_80191662/article/details/142901345,博主有相关资料,可以下载,一切完成后就可以进入下面的操作。
二.实际操作
1.基础指令
- 用Debug的R指令查看,改写CPU寄存器的内容
- 用Debug的D指令查看内存中的内容
- 用Debug的E指令改写内存中的内容
- 用Debug的U指令将内存中的机器指令翻译成汇编指令
- 用Debug的T指令执行一条机器指令
-
用Debug的A指令以汇编指令的格式在内存中写入一条机器指令
2.具体操作
①先查看寄存器中内容
这里要注意CS,IP中的内容,这是决定CPU从何处执行命令的“指挥长”,如果要修改寄存器中的内容。就在R后面加上要修改寄存器的名称:
②查看内存中的内容
如果我们想知道内存10000H中的内容,根据物理地址的组成,我们可以这么写“D 段地址(1000):偏移地址(0)”
如果想查看某个区间的内存中的内容,就可以“D 1000:0 a"
③修改内存中的内容
- 可以一次性修改
- 也可以选择性修改
与直接修改不同,选择性修改可以一个一个选择,要修改的在.后面写上修改的数据,不修改的就按空格键,完成后按enter键
也可以写入字符和字符串,修改右边的值 :
计算机的romantic (浪漫)嘻嘻嘻
④ 用U查看机器码所对应的汇编指令
先用E写入机器码,再用U查看
⑤那么如何执行这个命令,就要用到T指令
要让CPU执行这个指令,需要让CS,IP指向这个地址
⑥机器码不会或记不住,就用A指令以汇编的形式写入
三.关于后面的操作
我想通过这个实验一起讲完,因为容易搞混(亲身经历)
首先是DS这个寄存器,与CS,IP要进行区分,DS所存放的是段地址,以便CPU读取内存单元;而CS,IP是让CPU执行指令的地址
执行这个操作后
寄存器CS的内容进入到内存单元,高八位进入到1000:0001,低八位进入到1000:0000,完成了寄存器和内存单元的交互(前面都是数据与寄存器或内存单元和数据的交互)