实验1:汇编语言语法练习与分支循环子程序设计.docx
实验报告(2018 / 2019学年第1学期)课程名称微型计算机原理与接口技术实验名称 实验1:汇编语言语法练习与分支循环子程序设计实验时间 2018 年10 月22 日指导单位通信工程学院指导教师祁正华学生姓名杨单妮班级学号17120205学院(系)通信工程学院专 业通信工程实验报告实验名称汇编语言语法练习与分支循环子程序设计指导教师祁正华实验类型软件实验学时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-45II间的字符个数,并将统计结果以二进制形 式显示在屏幕上。实验报告1 .修改后的程序:.486DATASEGMENT USE16SUMDBMESGDB ' 25+9='N1DB 0, 0,' $'DB 9, OFOHN2DB 25DATAENDSCODESEGMENT USE16BEG:ASSUME CS:CODE, DS:DATAMOV AX, DATAMOV DS, AXMOV BX, OFFSET SUMMOV AH, N1MOV AL, N2ADD AH, ALMOV BX, AHCALL CHANGMOV AH, 9MOV DX, OFFSET MESGINT 21HMOV AH,4CHINT 21HCHANGPROCLAST:CMP BYTE PTR BX,10JC NEXTSUB BYTE PTR BX,10INC BYTE PTR BX+7JMP LASTNEXT:MOV DL, SUMADD BYTE PTR BX+8,DLADD BYTE PTR BX+7,30HADD BYTE PTR BX+8,30HRETCHANG ENDPCODEENDSEND BEG2.统计字符个数.486DATASEGMENT USE16BUFDB 'ABCD'COUNT EQU$-BUFDATAENDSCODESEGMENT USE16ASSUME CS:CODE,BEG:MOV AX, DATAMOV DS, AXMOV BL, 0MOV SI, 0MOV CX,COUNTAGA:CMP BUFSI, 42HJB LASTCMP BUFSI, 45HJA LASTINC BLLAST:INC SILOOP AGAMOV CX, 8M2:TEST BL, 80H:DATAJNZ M3MOV DL,' 0,MOV AH,02HINT 21HJMP M4M3:MOV DL,' 1'MOV AH, 02HINT 21HM4:SHL BL, 1LOOP M2MOV DL,' B,MOV AH, 2INT 21HMOV AH, 4CHINT 21HCODEENDSEND BEG强未来之宦00000011BPress any key to continue .四、实验小结(包括问题和解决方法、心得体会、意见与建议等)首先根据MASM给出的错误信息对源程序进行修改,关键在于一些 细节使得程序不能运行,这就要掌握汇编语言的基础知识,对每条指 令进行观察发现错误,可能是类似标点符号的小错,也可能是指令完 全不符。其次将数字显示在屏幕上还需要进制的转换,需要用到COUNT EQU $-BUFo汇编语言是一门非常有深度、有内涵的学问,我现在只是初步的 接触了汇编语言,并只是了解了汇编语言的外表的内容,不能因此就 产生骄傲、自满的情绪,汇编语言还有其他很多我不了解、不明白的 地方需要我认真的钻研和学习。五、指导教师评语成绩批阅人日期