实验报告(2018/2019学年第1学期)课程名称微型计算机原理与接口技术实验名称实验1:汇编语言语法练习与分支循环子程序设计实验时间2018年10月22日指导单位通信工程学院指导教师祁正华学生姓名杨单妮班级学号17120205学院(系)通信工程学院专业通信工程1实验报告实验名称汇编语言语法练习与分支循环子程序设计指导教师祁正华实验类型软件实验学时2+2实验时间2018.10.22一、实验目的和要求1.学习使用q、TASM、TLINK、和TD等命令;2.掌握汇编源程序的编辑、汇编、链接和执行的全过程;3.修改一个有错误的源程序;4.运用已掌握的宏汇编编程方法,进行汇编语言程序设计;5.设计一个程序,完成代码转换及屏幕显示。二、实验环境(实验设备)PC系列机,汇编语言开发工具TASM5.0,未来汇编三、实验原理及内容1.排除语法错误。下面给出的是一个通过比较法完成八位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据MASM给出的错误信息对源程序进行修改,直到没有语法错误为止。然后进行链接,并执行相应的可执行文件。正确的执行结果是在屏幕上显示25+9=34。2.从BUFF单元开始存有一字符串(长度<255),编程实现统计该串字符中的ASCII码在42H-45H间的字符个数,并将统计结果以二进制形式显示在屏幕上。2实验报告1.修改后的程序:.486DATASEGMENTUSE16SUMDB'?','?'MESGDB'25+9='DB0,0,'$'N1DB9,0F0HN2DB25DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXMOVBX,OFFSETSUMMOVAH,N1MOVAL,N2ADDAH,ALMOV[BX],AHCALLCHANGMOVAH,9MOVDX,OFFSETMESG3INT21HMOVAH,4CHINT21HCHANGPROCLAST:CMPBYTEPTR[BX],10JCNEXTSUBBYTEPTR[BX],10INCBYTEPTR[BX+7]JMPLASTNEXT:MOVDL,SUMADDBYTEPTR[BX+8],DLADDBYTEPTR[BX+7],30HADDBYTEPTR[BX+8],30HRETCHANGENDPCODEENDSENDBEG42.统计字符个数.486DATASEGMENTUSE16BUFDB'ABCD'COUNTEQU$-BUFDATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXMOVBL,0MOVSI,0MOVCX,COUNTAGA:CMPBUF[SI],42HJBLASTCMPBUF[SI],45HJALASTINCBLLAST:INCSILOOPAGAMOVCX,8M2:TESTBL,80H5JNZM3MOVDL,'0'MOVAH,02HINT21HJMPM4M3:MOVDL,'1'MOVAH,02HINT21HM4:SHLBL,1LOOPM2MOVDL,'B'MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDBEG6四、实验小结(包括问题和解决方法、心得体会、意见与建议等)首先根据MASM给出的错误信息对源程序进行修改,关键在于一些细节使得程序不能运行,这就要掌握汇编语言的基础知识,对每条指令进行观察发现错误,可能是类似标点符号的小错,也可能是指令完全不符。其次将数字显示在屏幕上还需要进制的转换,需要用到COUNTEQU$-BUF。汇编语言是一门非常有深度、有内涵的学问,我现在只是初步的接触了汇编语言,并只是了解了汇编语言的表面的内容,不能因此就产生骄傲、自满的情绪,汇编语言还有其他很多我不了解、不明白的地方需要我认真的钻研和学习。五、指导教师评语成绩批阅人日期