资源描述:
《太原理工大学硬件实验4》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本科实验报告课程名称:计算机硬件基础实验项目:实验四汇编语言程序设计:综合程序设计实验实验地点:逸夫楼202与计算机硬件实验室701专业班级:软件***学号:********学生姓名:***指导教师:高劲松2013年5月17日实验名称:实验四汇编语言程序设计:综合程序设计实验实验目的和要求:1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。2.掌握分支程序的结构、单分支和多分支程序的设计方法。3.了解循环程序的基本结构和控制循环的方法。4.掌握通过DOS中断调用使用键盘和显示器的方法。实验内容和原理:1.预习汇编程序上机操作
2、的全过程。编写一个汇编语言源程序;以下是MASM5环境中运行步骤:(同学们也可以使用CV集成编译环境)(1)在dos环境下,如:d:masm下输入命令:edit(2)打开编辑窗口(3)输入如下原程序后保存文件,例如exp1.asm(4)输入下列指令进行编译:d:masmmasmexp1.asm回车检查错误,如结果为0错误0警告则编译成功,产生exp1.obj文件(5)输入下列指令进行链接:d:masmlinkexp1.obj回车如结果为0错误0警告则链接成功,产生exp1.exe文件(6)运行程序检验结果。d:masmexp1回车2.对已经汇编连接成功的
3、可执行文件,使用DEBUG命令调试程序找出程序的断点,执行程序,显示有关寄存器、存储单元的内容,分析程序的结果。主要仪器设备:HP6460b笔记本实验记录:1.编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。STACKSEGMENTSTACKDB200DUP(0)STACKENDSDATASEGMENTXDB0;DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAH,01HINT21HCMPAL,'a'JNLNEXTM
4、OVX,'a'-'A'ADDX,ALMOVAH,02HMOVDL,XINT21HMOVAH,4CHINT21HNEXT:MOVX,'A'-'a'ADDX,ALMOVAH,02HMOVDL,XINT21HMOVAH,4CHCODEENDSENDSTART2.编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格结束,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。STACKSEGMENTSTACKDB200DUP(0)STACKENDSDATASEGMENTXDB'0'DATAENDSCODESEGMENTASSUMECS:CODE,DS:
5、DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXSUBAX,AXMOVBX,0MOVDX,0MOVCX,10AA1:CMPCX,0JZSTOPMOVAH,1INT21HCMPAL,20HJBSTOPCMPAL,'0'JBCC2CMPAL,'9'JACC1INCBHJMPNEXT1CC1:CMPAL,'A'JBCC2CMPAL,'Z'JBNEXTCMPAL,'a'JBCC2CMPAL,'z'JACC2NEXT:INCBLJMPNEXT1CC2:INCDHNEXT1:LOOPAA1STOP:MOVAH,2MOVDL,BHADDDL,XINT21HM
6、OVAH,2MOVDL,BLADDDL,XINT21HMOVAH,2MOVDL,DHADDDL,XINT21HMOVAX,4C00HINT21H4CODEENDSENDSTART实验结果和分析:心得体会:由实验运行可知,上述两个程序正确。其中也由于一些编码时的粗心大意而导致一些错误。如在程序端未加MOVAX,4C00HINT21H而将出现一些无缘无故的错误。并且一般而言使用中断时,必须有栈段。还有一些小的错误等。体会:通过使用-u来进行反编译也是一种很好的进行测试的方法。并且对于一些并不熟悉的ASCALL码有时可以通过直接用字符的方法去做,省去记忆字符。