语法练习和程序设计微机实验报告.docx

上传人:b****3 文档编号:6607947 上传时间:2023-05-10 格式:DOCX 页数:13 大小:77KB
下载 相关 举报
语法练习和程序设计微机实验报告.docx_第1页
第1页 / 共13页
语法练习和程序设计微机实验报告.docx_第2页
第2页 / 共13页
语法练习和程序设计微机实验报告.docx_第3页
第3页 / 共13页
语法练习和程序设计微机实验报告.docx_第4页
第4页 / 共13页
语法练习和程序设计微机实验报告.docx_第5页
第5页 / 共13页
语法练习和程序设计微机实验报告.docx_第6页
第6页 / 共13页
语法练习和程序设计微机实验报告.docx_第7页
第7页 / 共13页
语法练习和程序设计微机实验报告.docx_第8页
第8页 / 共13页
语法练习和程序设计微机实验报告.docx_第9页
第9页 / 共13页
语法练习和程序设计微机实验报告.docx_第10页
第10页 / 共13页
语法练习和程序设计微机实验报告.docx_第11页
第11页 / 共13页
语法练习和程序设计微机实验报告.docx_第12页
第12页 / 共13页
语法练习和程序设计微机实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

语法练习和程序设计微机实验报告.docx

《语法练习和程序设计微机实验报告.docx》由会员分享,可在线阅读,更多相关《语法练习和程序设计微机实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

语法练习和程序设计微机实验报告.docx

语法练习和程序设计微机实验报告

 

实验报告

(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编辑打开修改。

五、指导教师评语

成绩

批阅人

日期

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2