实验三

一、实验结论

1.实验内容练习1

(1)编写汇编源程序(此为用记事本写的汇编源程序)

(2)对源程序 t1.asm 进行汇编、连接、运行、调试

汇编

 连接与运行

 

①输出结果为36;

②将 line4和line9种寄存器dl 的值分别修改为 0~9 中任何一个数字,重新汇编→ 连接→运行,观察结果的变化。

汇编连接运行

结果为57

可以得出该运行结果为输出以line4的dl值为十位和line9dl值为个位的十进制数

(3) 用debug对生成的可执行文件 t1.exe 进行调试。

查看寄存器值:观察寄存器 cx=0016;ds=15c9;cs=15d9,满足关系(cs)=(ds)+10H。

查看内存单元:PSP的头两个字节为CD 20;符合之前猜测。

用u进行反汇编,观察到反汇编得到的源代码与记事本中写入的相同。

 2.练习2

第1步,编写汇编源程序t2.asm

 用cmd命令行进行编译和连接

尝试运行

运行失败,使用masm集成操作系统进行调试(报错)

根据错误信息进行更改汇编源代码

再次运行

将源代码中line7的0433h→0432h, line10 的 0436h→0439h, 然后重新汇编、连接,得到可执行文件 t2.exe,使用cls命令清屏后,再次观察程序运行结果。

 

试将源代码中line7的0433h→0333h, line10 的 0436h→0336h, 然后重新汇编、连接,得到可执行文件 t2.exe,观察运行结果。

运行结果如上图

二、总结与体会

1.本次实验内容,我分别用dos和masm进行了汇编源程序的编译与运行。我发现,相对于dos操作系统而言,masm编写汇编程序更加便捷,对于某些程序错误也能正确的

检测出来,适合用来快速编写汇编源程序。dos平台更适合进行程序的分析,能在分步调试的过程中发现程序本身是如何来实现的。两者各有各的优点,要学会在适宜的环

境下运用相应的软件

2.在dos平台下的分步调试中,我还意识到了t命令和p命令的区别

①t命令是分步调试,单步跟踪,即使是进入子程序也是如此

②p命令也是分步调试,单步跟踪,但是p命令在调试子程序时,可以将子程序一步执行结束,不需要进入子程序当中,亦可以用来快速执行循环程序。

3.在最后一个实验中,我们通过汇编源程序,成功输出了不同颜色的不同数字,根据之前的实验,可能是我们更改了显存内存单元中的信息实现的,但是具体的数字与内存

单元的内容之间的关系,还是对它不了解,希望我在后面的学习中能找到答案

原文地址:https://www.cnblogs.com/xihongqing/p/9964705.html