资源描述:
《昆明理工大学微机原理与应用实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、昆明理工大学《微机原理与应用》实验指导书班级:电自091姓名:学号:2012年5月23日昆明理工大学电力工程学院学生实验报告111实验课程名称:汇编语言程序上机操作方法实验开课实验室:计算中心2012年4月27日实验项目名称汇编语言程序上机操作方法实验指导教师蔡子龙一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,为后继课程打下坚实的基础。二、实验原理使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法。实验题目:比较两个字符串的长度并输出较长
2、的字符串三、实验仪器、材料1.软件MASM5.02.PC微机一台四、实验步骤1、建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。注意保存的源文件以asm为后缀。2、用汇编程序MASM对源文件汇编产生目标程序.OBJ。3、用连接程序LINK产生可执行文件.EXE。1114、执行程序。5、程序调试源程序代码:DATASEGMENTARRAYDB12,90,100,54,43,32,21,56,11,34COUNTDW$-ARRAYMAXDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:
3、DATASTART:MOVAX,DATAMOVDS,AXMOVCX,COUNTMOVSI,OFFSETARRAYMOVAL,[SI]AGAIN:INCSICMPAL,[SI]JAENEXTMOVAL,[SI]NEXT:DECCXJNZAGAINMOVMAX,ALMOVAH,4CHINT21HCODEENDSENDSTART运行程序得到的结果:111六、实验结果分析:DEBUG是汇编语言的调试指令,当程序出现语法错误时,运行中无法形成EXE文件,可以直接检查程序。但是若出现逻辑错误,则在程序中无法看出,需要用DEBUG来检查内存和寄存器的内容。各种不同
4、的指令有不同的作用,如D为显示内存命令,E为修改存储单元内容命令等。该程序比较简单,因此DEBUG命令并不明显,在程序比较复杂的情况下,DEBUG的作用极为明显。七、实验中遇到的问题及其解决方法。第一次编程时,程序容易出错,主要是容易遗漏一些语句,中英文的冒号混淆,认真检查便可发现并改正错误。111昆明理工大学电力工程学院学生实验报告实验课程名称:汇编语言程序上机操作方法实验开课实验室:计算中心2082012年4月27日实验项目名称十制的进BCD码加(减)法运算。指导教师蔡子龙一、实验目的1.掌握使用运算类指令编程及调试方法。2.学会运算类指令解决实
5、际问题的方法。3.掌握运算类指令对各标志位的影响及其测试方法。二、实验原理/说明实验题目:十进制的BCD码加(减)法运算。三、实验仪器、材料1.软件MASM5.02.PC微机一台四、实验方法、步骤1.输入程序并检查无误,经汇编、连接后生成.EXE文件。2.使用DEBUG命令运行以上程序。3.反复试几组数,考察程序的正确性。五、实验思考题及实验报告要求111程序代码DATASEGMENTADB25HBDB17HSUMDB?DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMO
6、VAL,AADDAL,BDAAMOVSUM,ALMOVAH,4CHINT21HCODEENDSENDSTART执行link后的结果:111执行debug后再执行反汇编u后的结果:执行g0012后在执行d0命令后的结果:结果如图,AL的值为42,符合25加17的计算结果。。111昆明理工大学电力工程学院学生实验报告实验课程名称:汇编语言程序上机操作方法实验开课实验室:计算中心2082012年5月11日实验项目名称分支、循环及子程序设计实验指导教师蔡子龙一、实验目的1.学习分支程序、循环结构程序的设计和调试方法。2.学习子程序的定义和调试方法。3.掌握分
7、支、循环、子程序等程序的基本结构。二、实验原理/说明实验题目:求某数据区内负数的个数。三、实验仪器、材料1.软件MASM5.02.PC微机一台四、实验方法、步骤1.输入程序并检查无误,经汇编、连接后生成.EXE文件。2.使用DEBUG命令运行以上程序。3.反复试几组数,考察程序的正确性。五、实验思考题及实验报告要求111代码:DATASEGMENTARRAYDB-16,18,-12,9,-5,-6,5,0,-11COUNTDW$-ARRAYMAXDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVA
8、X,DATAMOVDS,AXMOVAL,0MOVDL,0MOVCX,COUNTMOVSI,OFFSETARR