汇编语言综合实验

2018-11-22 18:45

华北科技学院综合性

实 验 报 告

课程名称 汇 编 语 言 实验学期 2014 至 2015 学年 第 1 学期 学生所在系部 计算机学院网络工程系 年级 三年级 专业班级 网络B12-1 学生姓名 朱生军 学号 201207024106 任课教师 李冬艳 实验成绩

计算机学院制

华北科技学院综合性实验报告

《 汇 编 语 言》课程综合性实验报告

开课实验室:基础一 2015-06-09 实验题目 一、实验目的 显示学生名次表 进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序、子程序、宏指令编程方法,提高汇编语言程序设计能力的应用水平。 二、设备与环境 PC兼容机、Windows操作系统、汇编程序masm for windows 2012 三、实验内容 编制一程序,要求接收从键盘输入的一个班的学生的学号、姓名、成绩,对学生的成绩进行排序,最后把学号、姓名、学生成绩、名次显示出来。 实验要求: 1.必须画流程图。 2.本程序涉及汇编语言的多重循环、子程序及宏,其中 成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理。 3.要求用菜单选择。具体要求: 输入1是数据录入并输出(包括姓名、学号、成绩); 输入2是排序后的数据输出(包括姓名、学号、成绩、名次); 输入3是可以按学号查找某学生,并输出其成绩,选择修改或不改成绩。 四、实验结果及分析(包括①已完成什么功能,②如何实现的、遇到的问题和解决办法、流程图和关键代码解释,③收获和体会等) (一)、程序实现的功能。 1、本次实验中,我首先运用了菜单,来实现选择本程序的其他功能。 2、学生信息(姓名,学号,成绩)的录入以及显示。 3、对于学生的成绩来进行排序,然后显示 第 1 页

华北科技学院综合性实验报告 4、用学生的学号来查询学生的信息。 (二)、程序的分析: 1、本程序中分别运用了宏,子程序、定义提示符等,来简化程序,并且让程序更容易的看清楚。 ①:宏定义的举例: PRINT MACRO A LEA DX,A MOV AH,9 INT 21H ENDM ②:子程序定义的举例: WEIZHI PROC sun PRINT string6 PRINT string7 PRINT string8 sun RET OUTPUT_ALLpx PROC(子程序中嵌套子程序) call WEIZHI_px LET2: mov bx,15 mov ax,x1 MUL BX mov b1,ax CALL OUTPUTpx INC X1 CMP X1,3 JNZ LET2 RET OUTPUT_ALLpx ENDP WEIZHI ENDP ③:提示符定义的举例: string db \,10,13,\string1 db \,10,13,\string3 db \,10,13,\ string4 db \string5 db 'error',10,13,'$' 2、程序的设计: ①:本程序中主程序用菜单来实现各个功能的选择。首先键盘输入数字,然后依次和1、2、3、4等比较,符合了之后跳入各个功能。每个功能之中,调用之后用的子程序,来实现自己的功能。菜单的流程图如下:

第 2 页

华北科技学院综合性实验报告 开始 输入执行的功能号 Sub al,30h Cmp al,1 Y 跳入一号功能程序 N CMP AL,2 Y N 跳入二号功能程序 CMP AL,3 Y 跳入三号功能程序 N CMP AL,4 N Y 菜单结束 提示输入错误 JMP ②:本程序中,第一个功能,输入学生信息,并且显示。首先调用输入信息的子程序。我在实验开头定义了三个数组,用来存放学生的姓名,学号,成绩等。每个人的每个信息预留15个单位。运用1号功能来输入姓名信息,之后判断是不是回车,不是回车,指针加1,继续输入,是回车,跳入输入学号的程序。依次类推,输入成绩用两位数的输入来实现,输入成绩结束后,开始循环输入第二个人的信息。等所有人的信息输入之后,输入信息的子程序结束。输入信息流程图在结尾。 待所有人输入完成之后,直接调用输出信息的子程序。在子程序中,大循环中,运用比较来判断是否要继续输出。在输出一个人的每个信息的时候,用B1指针来判断输出第几个人的信息。输出姓名、学号的时候,用2号功能,用 mov cx 15和LOOP来实现输出15次,用INC BX来实现依次向下的输出。输出完成后,继续输出学号(方

第 3 页

华北科技学院综合性实验报告 法和输出姓名一样)。输出程序用两位数的输出来实现。输出成绩结束后,开始循环输出第二个人的信息。所有人的程序都输出完成后,输出结束。 输入学生信息的流程图: 跳入输入信息子程序 LOOP MOV AH,1 INT 21H N CMP AL,13 Y 跳入输入学号程序 MOV AH,1 N INT 21H CMP AL,13 Y 跳入输入成绩(两位) 先输入十位,再输入个位。最后 用 ADD AL,D MOV OUTCHENGJI[BX],AL。把 成绩存在数组里面。 MOV OUTNAME[BX],AL INC BX LOOP MOV OUTSnumber[bx],AL inc BX 输入成绩的子程序结束 ③:排序并且输出功能的实现:首先调用比较的子程序。在子程序中,用CX来判断要比较的人,用BX来作为成绩的指针,用字符串的比较,来比较第一个人和第二个人的成绩,如果第一个成绩大于第二个成绩,用add bx,15,来跳到第二个人的成绩,用第二个成绩和第三个成绩比较。如果在以上的比较中,前一个人成绩小于后一个人的成绩,用xhag al,outchengji[bx+15]交换两个人的成绩。待所有人

第 4 页


汇编语言综合实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电磁感应典型题型归类

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: