- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华北科技学院综合性实验报告
PAGE
第 PAGE 1 页
华北科技学院综合性
实 验 报 告
课程名称 汇 编 语 言
实验学期 2011 至 2012 学年 第 1 学期
学生所在系部 计算机学院网络工程系
年级 2009 专业班级 网络B091
学生姓名 罗希 学号 200907024114
任课教师 李冬艳
实验成绩
计算机学院制
《 汇 编 语 言》课程综合性实验报告
开课实验室:软件一实验室 2011年 12 月6 日
实验题目
显示学生名次表
一、实验目的
进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和子程序编程方法,巩固提高汇编语言程序设计能力应用水平。
二、设备与环境
PC兼容机、Windows操作系统、汇编程序masm611。
三、实验内容
编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入50字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号顺序把学生成绩及学生名次显示出来。
1.必须画流程图。
2.本程序要求要有多重循环和子程序,其中成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理。
四、实验结果及分析
本程序一共有5个子程序。子程序分别是INPUT键盘输入,COPY数据转存,CHANG 十进制数转换成二进制,SORT按成绩排序和PRINT打印排序名单。
输入界面:
首先调用INPUT功能输入学号,姓名,成绩,存入BUFF1,BUFF2,BUFF3缓存中,此时的输入顺序就是他们排名。再调用COPY将3个缓存中的数据保存在NUBER,SNAME,SCORE1中。此时再调用CHANG功能把SCORE1中的成绩转换成2进制存到SCORE2中。用冒泡排序法从高到低进行排序,此时SCORE2的顺序改变,顺序号也改变,而NUBER,SNAME,SCORE1中的数据都不改变。最后,调用PRINT方法输出,按照成绩降序进行输出。根据他们的顺序号找出他们在NUBER,SNAME,SCORE1中的学号,姓名,成绩输出。
子程序流程图:
主程序主程序:
主程序
初始化
初始化
CALL INPUT
CALL INPUT
CALL SORT
CALL SORT
CALL PRINT
CALL PRINT
结束
结束
INPUT子程序:
INPUT
INPUT
BX+1
CALL COPY
RET返回主程序
保存输入次序
BXP?
输入姓名
输入学号
输入成绩
Y
主要代码分析:
LEA DX,INFOR1
MOV AH,9
INT 21H
LEA DX,BUFF1
MOV AH,10
INT 21H
MOV AL,BUFF1+1
ADD AL,2
MOV AH,0
MOV SI,AX
MOV BUFF1[SI],0
此代码是输入姓名的代码,首先讲缓存区BUFF1的偏移地址给DX调用10号功能输入一个字符串,然后将回车0D所在位置换为0便于输出显示。
子程序COPY:
子程序COPY
子程序COPY
CX=N+1
姓名传送到SNAME
成绩传送到SCORE1
CALL CHANGE
CX=N+1
学号传送到NUBER
关键代码分析:
MOV CX,N+1
LEA SI,BUFF1+2
LEA DI,SNAME
ADD DI,SIGN1
CLD
REP MOVSB
MOV CX,N
MOV AX,$
LEA DI,BUFF1+2
REP STOSB
CX为姓名长度,将缓存区的姓名传入到SNAME中,SIGN1为他们的间隔,传完之后再将缓存区的数据清空,全部设置为$。学号和成绩也是如此。
子程序CHANGE:
子程序CHANG
子程序CHANG
CX-成绩位数
从BUFF2取出一数给AL
去掉ASCII码
扩大10倍
与X相加
SOCRE2给2进制成绩X
RET返回
在0-9之间?
循环结束?
N
Y
N
N
关键代码:
REPT2:
MOV AL,[SI]
CMP AL,30H
J
文档评论(0)