岳宇轩同学进行的汇编实验十一,是在计算机底层语言中探索和实践程序设计原理的重要环节,旨在提升学生的硬件编程能力和低级语言操作技巧。
【实验报告】:调试工具DEBUG的使用
实验者:岳宇轩
专业:计算机科学与技术
实验时间:2020年11月20日
【实验目的】:
1. 掌握DEBUG的基本功能,熟悉其常用命令,如A、U、R、D、E、T、P、G和Q等。
2. 通过DEBUG理解IBM-PC机的各类寻址方式,并观察数据传送指令在不同寻址方式下的表现。
【实验环境】:
需要使用DOS或Windows命令行环境。对于没有DEBUG工具的Windows版本,需设置虚拟机以提供必要的调试功能。
【实验原理】:
DEBUG是一个强大的调试工具,它允许用户直接访问和修改内存的内容。所有数值默认采用十六进制格式表示。常用命令包括:
- A:在指定地址开始汇编程序。
- U:反汇编指定地址的机器码。
- R:显示或更改寄存器值。
- D:查看内存中的数据内容。
- E:编辑内存中的数据。
- T:单步执行指令,观察每一步的变化情况。
- P:执行一条指令并更新寄存器状态信息。
- G:从指定地址开始连续运行程序直到遇到断点为止或用户手动停止它。
- Q:退出DEBUG。
【实验内容】:
1. 使用E命令初始化数据段和代码段中的初始值,例如`E DS:00023012500`和`E CS:100A100000306020`。
2. 利用D命令检查已设置的数据段与代码段的具体内容。
3. 通过T命令逐步执行程序并观察寄存器的变化情况,以理解每条指令对系统的影响。
4. 使用U命令反汇编特定地址处的机器码以便于分析其含义和作用机制。
5. 调整IP值后使用G命令启动程序运行,从而改变实际执行流程的方向或顺序。
6. 编写并测试简单的自定义汇编代码段,如:
```
-A 100
DB 1234567890
CLD
MOV SI, 100
MOV DI, 200
MOV CX, A
REPMOVSB
-G =10A
```
【实验结果分析】:
- 在执行T命令过程中观察到了IP和AX寄存器的更新情况。
- 修改了程序入口点(即IP)后,通过G命令重新运行程序并发现其流程有显著变化。
- 采用D命令验证自定义编写的小型复制字符串功能正确地实现了预期效果。
【总结】:
岳宇轩同学在此次实验中掌握了DEBUG的基本操作方法,并对IBM-PC机的寻址方式有了深入的理解。此外,还通过实践学会了如何利用该工具来设计和调试简单的汇编程序代码。这为今后学习更复杂的计算机系统底层知识打下了坚实的基础,在遇到实际问题时也能更加有效地定位并解决相关难题。