语法练习和程序设计微机实验报告.docx
- 文档编号:11798479
- 上传时间:2023-04-02
- 格式:DOCX
- 页数:13
- 大小:77KB
语法练习和程序设计微机实验报告.docx
《语法练习和程序设计微机实验报告.docx》由会员分享,可在线阅读,更多相关《语法练习和程序设计微机实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
语法练习和程序设计微机实验报告
实验报告
(2012/2013学年第一学期)
课程名称
微型计算机原理与接口技术
实验名称
语法练习和程序设计
实验时间
2012
年
10
月
11
日
指导单位
计算机学院
指导教师
陈云芳
学生姓名
郁涛
班级学号
m10006025
学院(系)
通达学院
专业
光电信息工程
实验报告
实验名称
语法练习和程序设计
指导教师
陈云芳
实验类型
验证
实验学时
2
实验时间
2012.10.11
一、实验目的和要求
1、进一步学习汇编语言源程序的编辑、汇编、目标文件的链接和可执行文件的执行全过程。
2、掌握汇编软件、TASM、TLINK、和TD的使用方法。
3、掌握汇编语言的语法规则。
4、掌握循环程序的编写以及结束循环的方法。
二、实验环境(实验设备)
TASM汇编开发工具包,windows7.
三、实验原理及内容
1、【实验1.3.1】排除语法错误。
要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。
但有很多语法错误,要求按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行链接,并执行相应的可执行文件。
正确的执行结果是在屏幕上显示:
25+9=34。
源程序:
.486
DATASEGMENTUSE16
SUMDB?
?
MESGDB'25+9='
DB0,0
N1DB9,F0H
N2DW25
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETSUM
MOVAH,N1
MOVAL,N2
ADDAH,AL
MOV[BX],AH
CALLCHANG
MOVAH,9
MOVDX,OFFSETMESG
INT21H
MOVAH,4CH
INT21H
CHANG:
PROC
LAST:
CMP[BX],10
JCNEXT
SUB[BX],10
INC[BX+7]
JMPLAST
NEXT:
ADD[BX+8],SUM
ADDBYTEPTR[BX+7],30H
ADDBYTEPTR[BX+8],30H
RET
CHANG:
ENDP
CODEENDS
ENDBEG
用TASM编译后,提示出现5处错误。
经过多次修改以后代码如下
.486
DATASEGMENTUSE16
SUMDB?
?
MESGDB'25+9='
DB0,0,'$'
N1DB9
N2DB25
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETSUM
MOVAH,N1
MOVAL,N2
ADDAH,AL
MOV[BX],AH
CALLCHANG
MOVAH,9
MOVDX,OFFSETMESG
INT21H
MOVAH,4CH
INT21H
CHANGPROC
LAST:
CMPBYTEPTR[BX],10
JCNEXT
SUBBYTEPTR[BX],10
INCBYTEPTR[BX+7]
MOVAH,BYTEPTR[BX]
JMPLAST
NEXT:
ADDBYTEPTR[BX+8],AH
ADDBYTEPTR[BX+7],30H
ADDBYTEPTR[BX+8],30H
RET
CHANGENDP
CODEENDS
ENDBEG
修改以后用tasm编译,如下
再用TLINK链接如下
最后运行如下
2、实验【2.3.4】从数据段NUM单元开始存有9个有符号数,并编写一个程序实现:
找出最小值存放到数据段MIN单元,并将负数的个数以十进制的形式显示在屏幕上。
编写多次修改后代码如下:
.486
DATASEGMENTUSE16
NUMDB4,5,-6,-37,2,-1,8,-15,1
MINDB?
ABDB'0'
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETNUM
MOVCH,0
MOVCL,9
AGAIN:
CMPBYTEPTR[BX],0
JGNEXT1
INCAB
CMPBYTEPTR[BX],CH
JGNEXT1
MOVCH,BYTEPTR[BX]
NEXT1:
INCBYTEPTRBX
DECCL
JNEAGAIN
MOVMIN,CH
MOVAH,2
MOVDL,AB
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDBEG
编译链接运行后,结果如下:
三、实验原理及内容
2、【实验1.3.1】排除语法错误。
要求通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序。
但有很多语法错误,要求按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止,然后进行链接,并执行相应的可执行文件。
正确的执行结果是在屏幕上显示:
25+9=34。
源程序:
.486
DATASEGMENTUSE16
SUMDB?
?
MESGDB'25+9='
DB0,0
N1DB9,F0H
N2DW25
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETSUM
MOVAH,N1
MOVAL,N2
ADDAH,AL
MOV[BX],AH
CALLCHANG
MOVAH,9
MOVDX,OFFSETMESG
INT21H
MOVAH,4CH
INT21H
CHANG:
PROC
LAST:
CMP[BX],10
JCNEXT
SUB[BX],10
INC[BX+7]
JMPLAST
NEXT:
ADD[BX+8],SUM
ADDBYTEPTR[BX+7],30H
ADDBYTEPTR[BX+8],30H
RET
CHANG:
ENDP
CODEENDS
ENDBEG
用TASM编译后,提示出现5处错误。
经过多次修改以后代码如下
.486
DATASEGMENTUSE16
SUMDB?
?
MESGDB'25+9='
DB0,0,'$'
N1DB9
N2DB25
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETSUM
MOVAH,N1
MOVAL,N2
ADDAH,AL
MOV[BX],AH
CALLCHANG
MOVAH,9
MOVDX,OFFSETMESG
INT21H
MOVAH,4CH
INT21H
CHANGPROC
LAST:
CMPBYTEPTR[BX],10
JCNEXT
SUBBYTEPTR[BX],10
INCBYTEPTR[BX+7]
MOVAH,BYTEPTR[BX]
JMPLAST
NEXT:
ADDBYTEPTR[BX+8],AH
ADDBYTEPTR[BX+7],30H
ADDBYTEPTR[BX+8],30H
RET
CHANGENDP
CODEENDS
ENDBEG
修改以后用tasm编译,如下
再用TLINK链接如下
最后运行如下
2、实验【2.3.4】从数据段NUM单元开始存有9个有符号数,并编写一个程序实现:
找出最小值存放到数据段MIN单元,并将负数的个数以十进制的形式显示在屏幕上。
编写多次修改后代码如下:
.486
DATASEGMENTUSE16
NUMDB4,5,-6,-37,2,-1,8,-15,1
MINDB?
ABDB'0'
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETNUM
MOVCH,0
MOVCL,9
AGAIN:
CMPBYTEPTR[BX],0
JGNEXT1
INCAB
CMPBYTEPTR[BX],CH
JGNEXT1
MOVCH,BYTEPTR[BX]
NEXT1:
INCBYTEPTRBX
DECCL
JNEAGAIN
MOVMIN,CH
MOVAH,2
MOVDL,AB
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDBEG
编译链接运行后,结果如下:
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
1让我们熟悉了汇编语言编写过程,从编辑到编译再到链接最后到运行的整个过程。
2了解了如何根据tasm编译时提示的错误进行针对性的修改。
3刚开始由于没有注意标号后面应加冒号“:
“说明这一细节,用tasm编译时一直提示出错,但又不知道错在哪里。
4使用tasm汇编工具汇编时,修改错误不太方便,需要根据提示错误行数,用edit编辑打开修改。
五、指导教师评语
成绩
批阅人
日期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语法 练习 程序设计 微机 实验 报告