文档详情

汇编语言实验报告方案.doc

发布:2016-05-01约7.35千字共11页下载文档
文本预览下载声明
华北科技学院综合性 实 验 报 告 课程名称 汇 编 语 言 实验学期 2013 至 2014 学年 第 2 学期 学生所在院部 计算机学院计算机工程系 年级 二年级 专业班级 计科B12- 学生姓名 学号 任课教师 李冬艳 实验成绩 计算机学院制 《 汇 编 语 言》课程综合性实验报告 开课实验室:基础实验室四 2015-05-26 实验题目 显示学生名次表 一、实验目的 进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序、子程序、宏指令编程方法,提高汇编语言程序设计能力的应用水平。 二、设备与环境 PC兼容机、Windows操作系统、汇编程序masm for windows 2012 三、实验内容 编制一程序,要求接收从键盘输入的一个班的学生的学号、姓名、成绩,对学生的成绩进行排序,最后把学号、姓名、学生成绩、名次显示出来。 实验要求: 1.必须画流程图。 2.本程序涉及汇编语言的多重循环、子程序及宏,其中 成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理。 3.要求用菜单选择。具体要求: 输入1是数据录入并输出(包括姓名、学号、成绩); 输入2是排序后的数据输出(包括姓名、学号、成绩、名次); 输入3是可以按学号查找某学生,并输出其成绩,选择修改或不改成绩。 四、实验结果及分析(包括①已完成什么功能,②如何实现的、遇到的问题和解决办法、流程图和关键代码解释,③收获和体会等) 1.流程图 2、程序分析 程序开始,显示主菜单,通过选择进入程序调用。调用子程序INPUT,进入子程序:输出字符串:“input:”调用子程序input,输入数据后调用子程序copy进行数据转存。调用change把输入的数转换为二进制,保存到score2中。程序排名:用CX以栈的形式保存循环次数,把成绩送到AL中,和AL+1比较,小于交换,结束内循环,恢复外循环次数,结束外循环。调用print输出排序。最查找通过输入学号进行查找,如果找到进行修改。最后输出。 关键代码 DATAS ENDS aa macro mov ah,2 mov dl,10 int 21h mov dl,13 int 21h endm STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX mov es,ax let0:mov ah,9 ;显示菜单 lea dx,menu int 21h mov ah,1 int 21h cmp al,1 ;输入选择 jz prog1 cmp al,2 jz prog2 cmp al,3 jz prog3 cmp al,4 jz prog4 mov ah,9 lea dx,mess5 int 21h jmp let0 prog1:call input ;调用input jmp let0 prog2: ;调用排序、输出 mov ax,p cmp ax,1 jl let0 call sort call print jmp let0 prog3: ;查找 mov ax,p cmp ax,1 jl let0 mov ah,9 lea dx,mess6 int 21h mov ah,10 lea dx,buffnumber int 21h mov al,buffnumber+1 add al,2 mov ah,0 mov ah,10 lea dx,buffname int 21h mov al,buffname+1 add al,2 mov ah,0 mov si,ax mov buffn
显示全部
相似文档