1.使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。
寄存器内容变化
ax=4E20
ax=6236
bx=2000
ax=8236
bx=8236
ax=046c 前面的1从nc到cy中有变化
ax=001a
bx=0026
ax=0040
ax=2640
bx=4026
ax=0040
ax=0066
ax=0002
使用e命令和a命令将指令写入内存,用t命令执行时,用-a 0:200和-e 0:200修改,第一次执行t用-t=0:200,后面则不需要。
cs:ip的指向一致。
2.将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
首先改变cs和ip的值 或使用jmp指令跳转
2的8次方ax=100
3.查看内存中的内容。
pc机主板上的ROM中写有一个生产日期,在内存fff00h-fffffh的某几个单元中,请找到这个生产日期并试图改变它。
生产日期为92年一月一日。
主板中的内容是不能改变的。实模式可以修改,虚拟8086模式不能修改。
因为用的是Dosbox,读取的是虚拟主板的信息。不是真正的生产日期。
4.向内存从b8100h开始的单元中填写数据,如:
-e b8100:0000 01 01 02 02 03 03 04 04
请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。
不同的数据控制着不同的颜色和样式,不同的地址控制着不同的位置。
5.总结与体会
一定要注意debug常用命令的格式,很多时候是需要加上地址,偏移地址或地址范围。命令过程中,很容易输入错误,会很难修改,一定要仔细。要对各种命令熟悉,多打打,由一定的熟悉度,才能在输入错误的时候不用重头再来,可以通过一些命令修改回来。
很多的目的实现不是只有一种方法,可以多多尝试,不同的方法说不定会带来不同的答案,然后从中找寻问题所在,对知识有更进一步的理解。