1、计算机学院指导教师陈云芳学生姓名郁涛班级学号m10006025学院(系)通达学院专 业光电信息工程实验类型验证实验学时22012.10.11一、 实验目的和要求1、进一步学习汇编语言源程序的编辑、汇编、目标文件的链接和可执行文件的执行全过程。2、掌握汇编软件、TASM、TLINK、和TD的使用方法。3、掌握汇编语言的语法规则。 4、掌握循环程序的编写以及结束循环的方法。二、实验环境(实验设备)TASM汇编开发工具包,windows 7.三、实验原理及内容1、【实验1.3.1】排除语法错误。要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。但有很多语法错误,要求按照原样
2、对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行链接,并执行相应的可执行文件。正确的执行结果是在屏幕上显示:25+9=34。源程序:.486DATA SEGMENT USE16SUM DB ?,?,MESG DB 25+9=DB 0,0N1 DB 9,F0HN2 DW 25 DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATABEG: MOV AX,DATAMOV DS,AXMOV BX,OFFSET SUMMOV AH,N1MOV AL,N2ADD AH,ALMOV BX,AHCALL CHAN
3、GMOV AH,9MOV DX,OFFSET MESGINT 21HMOV AH,4CHCHANG: PROCLAST: CMP BX, 10JC NEXTSUB BX, 10INC BX+7JMP LASTNEXT: ADD BX+8,SUM ADD BYTE PTR BX+7, 30HADD BYTE PTR BX+8, 30HRET ENDPCODE ENDSEND BEG用TASM编译后,提示出现5处错误。 经过多次修改以后代码如下 DB 0,0,$N1 DB 9N2 DB 25 ASSUME CS:CODE , DS: MOV AX, DATA MOV DS,AX MOV BX,OF
4、FSET SUM MOV AH,N1 MOV AL,N2 ADD AH,AL MOV BX,AH CALL CHANG MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CHCHANG PROC CMP BYTE PTR BX,10 JC NEXT SUB BYTE PTRBX,10 INC BYTE PTR BX+7 MOV AH, BYTE PTRBX JMP LAST ADD BYTE PTRBX+8,AH ADD BYTE PTRBX+7 ,30H ADD BYTE PTRBX+8 ,30H RETCHANG ENDP END BEG 修改以后用t
5、asm编译,如下 再用TLINK链接 如下 最后运行如下2、实验【2.3.4】从数据段NUM单元开始存有9个有符号数,并编写一个程序实现:找出最小值存放到数据段MIN单元,并将负数的个数以十进制的形式显示在屏幕上。编写多次修改后代码如下:NUM DB 4,5,-6,-37,2,-1,8,-15,1MIN DB ?AB DB 0 MOV BX,OFFSET NUM MOV CH,0 MOV CL,9AGAIN: CMP BYTE PTR BX ,0 JG NEXT1 INC AB CMP BYTE PTR BX, CH MOV CH,BYTE PTR BXNEXT1: INC BYTE PTR BX DEC CL JNE AGAIN MOV MIN,CH MOV AH,2 MOV DL,AB编译链接运行后,结果如下:2、【实验1.3.1】排除语法错误。四、实验小结(包括问题和解决方法、心得体会、意见与建议等) 1让我们熟悉了汇编语言编写过程,从编辑到编译再到链接最后到运行的整个过程。 2了解了如何根据tasm编译时提示的错误进行针对性的修改。 3 刚开始由于没有注意标号后面应加冒号“:“说明这一细节,用tasm编译时一直提示出错,但又不知道错在哪里。4使用tasm汇编工具汇编时,修改错误不太方便,需要根据提示错误行数,用edit编辑打开修改。 五、指导教师评语成 绩批阅人日 期