学号:20171308150 姓名:江漪雯 班级:17计科4班
实验结论
一、练习1
第一步,编写汇编源程序 t1.asm,源程序代码如图 1-1 所示。
第二步,对源程序 t1.asm 进行汇编、连接、运行、调试
首先打开DOSBOX界面,输入如下指令,进入edit界面。
然后会出现以下界面,点击Enter进入。
输入指定代码,并保存为t1.asm。
然后进行编译
连接
运行
1)运行程序,观察程序输出结果是什么?
36
2)将 line4 和 line9 种寄存器 dl 的值分别修改为 0~9 中任何一个数字,重新汇编->连接->运行,观察结果的变化。
我改为了 4和8。
然后分别进行汇编,连接和运行。
得到运行结果为48。
(3)用debug对生成的可执行文件 t1.exe 进行调试。
① 使用r命令查看,观察寄存器cx的值是多少;观察寄存器ds和cs的值是多少,他们之间是否满足关系(cs)=(ds)+10H?
CS=076A,DS=075A.CS=DS+10.故满足。
② PSP(程序段前缀)的头两个字节是CD 20,用debug查看PSP的内容,验证是否如此。
可得知确实如此。
③ 使用 u 命令对 t1.exe 进行反汇编,观察反汇编得到的源代码。
④ 使用 t 命令和 p 命令(遇到 int 命令时,用 p 命令)单步调试,观察结果。
可得知我的运行结果一个为4,一个为8。
二、练习 2
第一步,编写汇编源程序 t2.asm,源程序代码如图 1-2 所示。
将其命名为t2.asm。
第二步,对源程序 t2.asm 进行汇编、连接、运行、调试
1)对 t2.asm进行汇编,连接后,得到可执行文件 t2.exe。运行 t2.exe,观察程序运行结果,验证是否在屏幕左上方出现红色的数值36。
我的电脑直接运行显示不出,在执行前需要进行一次清屏操作,即cls命令。
2)如果(1)结果得到验证,重新打开 t2.asm,尝试将源代码中 line7 的 0433h->0432h,line10 的 0436h->0439h,然后重新汇编、连接,可得到执行文件 t2.exe。使用cls命令清屏后,再次观察程序运行结果。
将源代码中 line7 的 0433h->0432h,line10 的 0436h->0439h,然后重新汇编、连接,可得到执行文件 t2.exe,出现红色数字29。
使用cls命令清屏后,出现蓝色字母36。
总结与体会
本章需要熟练掌握一个汇编程序从写出到最终执行的简要过程。第一步,编写汇编源程序;第二步,对源程序进行编译连接;第三步执行文件中的程序。这三个步骤必须按照顺序来。在编写源程序的时候,如果程序没有返回,在编译的时候是不能表现出来的,被编译器发现的错误只能是语法错误。
通过查询网络,我了解到mov [bx],XXXXh是指向内存单元为ds:[bx]写入xxxxxh的数据。这个实验通过改变数据的值能够变化输出的数字和数字的颜色。
原文地址:https://www.cnblogs.com/jywe/p/9977304.html