序。可调用如下:Cdebugsampleexe可先用u命令显示程序,以便了解指令地址。显示结果如图12所示:
调试时,图12用debug调试时,u命令的显示情况
将断点设置在程序的主要部分运行以前,同时根据其中指示的DS寄存器内容查看数据段的情况如下:
可用e命令修改数据区的字符串,操作如下图所示,再次用d命令查看修改结果。
f用g命令运行程序,结果为:gNomatch用q命令退出debugq至此程序已调试完毕。
四、心得体会
通过这次实验主要是学习使用debug调试程序,掌握对程序的调试方法。虽然在调试过程中有遇到一定的难处,但是通过反复实验和同学的帮助还是能够比较顺利的完成的。个人觉得这个调试方法比较不直接点,不过相信应该有它的独到之处吧。
f计算机
学院
0
专业2班__组、学号31姓名
协作者
_________教师评定实验题目用表格形式显示字符实验二一、实验目的与要求
学习用汇编语言设计与编写循环程序。题目:用表格形式显示ASCII字符SMASCII
二、
实验内容
按15行×16列的表格形式显示ASCII码为10H100H的所有字符,即以行为主的顺序及ASCII码递增的次序一次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII为0)隔开。
三、
实验步骤
1输入的源文件为pri
tasm,以下为源代码:,以下为源代码:modelsmallstack200hdatacodestartmovcl16初始化列数计数为16movch15;初始化行数计数为15movdh10h;初始化dh为10hpodeccl;列数计数减1movah02h;输出该字符movdldhi
t21hi
cdh;令dh为下一个字符的ASCⅡ值movah02h;输出空格movdl0i
t21hcmpcl0;若列数计数cl为0jzmo;即已输出了16个字符则跳转换行jmppo;否则继续执行输出下一个字符的操作momovcl16;换行,重新置列数计数为16
fmovah02h;输出回车符movdl0dhi
t21hmovah02hmovdl0ah;输出换行符i
t21hdecch;换行,则使行数计数ch减1cmpch0;若ch为0jz
o;则跳转至结束程序jmppo;否则继续执行输出下一行字符的操作
omovax4c00hi
t21he
dstart2汇编并连接文件后,生成exe文件,运行结果如下:汇编并连接文件后,文件,运行结果如下:
四、
心得体会
编写中使用了功能号为02的输出功能调用,同时由于逐个显示相继的ASCII字符,需要保存并不断修改dl寄存器的内容,而显示空白、回车、换行符时也需要使用dl寄存器,故要使用堆栈来保存相继的ASCII字符。同样的,在实验过程中遇到了一些难点和想不通的地方,幸运的是,有老师的指点和同学的帮助,使r