1. 教材实验1
- 实验任务(1)
机器码数据较多,只用前4行实验即可。
用e命令和a命令两种方式,写入内存。(使用t命令单步调试)
e命令:


a命令:



- 实验任务(2)
附上a命令写入和t命令单步调试实验截图。对于单步调试较多的部分,只截调试开始,和调试出正确结果的部分即可。




- 实验任务(3)
附上在debug里实验的截图,并且基于实验结果,作必要的文字说明。
找到了ROM中的生产日期01/01/92 在内存FFFF6~FFFFDH单元中

试图修改这一块内存全为0,失败。

由于ROM是只读存储器,不能被修改,这个日期也是提前实现写进去的,只能读。
- 实验任务(4)
附上在debug里实验的截图,并且基于实验结果,作必要的文字说明

改变数据

改变地址

根据书上得知,地址A0000~BFFFF的内存单元是显存,在这里写数据就会被输出出来。改变数据就是改变写入的内容,能够显示不同的图案。改变地址就是在显示器的不同位置显示出来。
2. 教材实验2
实验任务(1)
①截图记录:使用 e 命令修改内存单元0022:0~0022:f 中的数据,及修改后查看是否正确写入的操作

② 截图记录:使用 a 命令输入的 p74 指令

③截图记录:每一行指令单步调试(如单步调试步骤多,可分屏截图,但不要有遗漏)




④ P74 中指令执行后各个寄存器填空结果,以在文档中手工标注或手机拍照截图方式复制在文档中。
对于③单步调试的观察,与理论上分析的结果进行比较,检验是否一致。如不一致,分析原因

分析过程如上,和我们课上学习分析的栈一致。
- 实验任务(2)
①截图记录图 3.19 中使用 a命令输入的 7 行指令,使用 e 命令修改 2000:0~2000:f 的值,及修改后查看的部分

②单步调试每一行汇编指令的截图。每一条指令单步调试后,都使用 d 命令查看2000:0~2000:f 的值。观察每一条指令执行后相关寄存器值的变化,及 2000:0~2000:f 单元值的变化,并思考原因







以文字方式陈述:
①前3行汇编指令的功能,特别是,mov sp, 10意味着什么?初始时栈顶和栈底分别是?
②基于单步调试观察到的变化,给出你对此的思考及可能原因分析。
这一块空间不仅存了AX,还存了CS,IP的值,当有数据入栈时这些前面原有的数据先前移动空出位置。
可能是dos下系统只有一个栈。所以才会又这种情况。
五、实验总结
使用t命令的两种形式,在调试前,如果写入的地址不是默认的,一定不要忘记更改cs和ip。
通过实际写一遍代码,查看内存的变化更能了解它指令在硬件中的改变。理论和实际环境中有什么区别。
浙公网安备 33010602011771号