




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北科技学院综合性实验报告华北科技学院综合性实 验 报 告 课程名称 汇 编 语 言 实验学期 2011 至 2012 学年 第 1 学期学生所在系部 计算机学院网络工程系 年级 2009 专业班级 网络B093 学生姓名 邓新龙 学号 1 任课教师 李冬艳 实验成绩 计算机学院制 汇 编 语 言课程综合性实验报告开课实验室:软件一实验室 2011年 12 月6 日实验题目显示学生名次表一、实验目的 进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和子程序编程的方法,巩固提高汇编语言程序设计能力应用水平。二、设备与环境 Windows,asm集成实验环境三、实验内容 1、画流程图 2、程序设计 3、编写代码 4、结果分析 5、实验报告4、 实验结果及分析1 程序功能l 学生学号、成绩输入l 学生成绩排序l 学生学号、成绩、排名输出2 程序简析 本程序由一个主程序和五个子程序组成:MAIN主程序,INPUTS输入子程序,SORT成绩排序子程序,PRINT输出子程序,PUT输出十进制数,INN输入十进制数。 定义了两个宏:CLY回车换行,INPUT调用1号功能。 定义四个数组: ID数组,用于保存学号 GRAND1数组,用于保存排序前的成绩 GRAND2数组,用于保存排序后的成绩 RANK数组,用于保存学生信息输入次序 操作过程:u 输出提示信息u 输入学生个数(任意位,回车结束输入)u 输出提示信息u 输入的学号(五个数字) u 自动输出空格,对齐u 输入成绩,回车结束u 自动回车换行,输入下一个学生信息u 输入结束,自动输出成绩单,程序结束 3 流程图 MAIN主程序:主程序开始输入学生个数保存至NUMBERCALL INPUTSCALL SORTCALL PRINT结束 INPUTS子程序:输出提示 输入次序X+1 保存外循环次数输入学号输出空格输入成绩回车? N Y保存输入次序,恢复外循环次数 外循环结束? N YRET返回主程序 SORT子程序:把GRANG1传送给GRAND2人数减1给CX保存外循环次数GRAND2给AXAX=AX+2 Y N GRAND2中成绩交换 RANK中名次交换AX=AX+2内循环结束? N Y恢复外循环次数外循环结束? N YRET返回 PRINT子程序:显示提示 初始化BX,CX ,DI从RANK取出名次计算学号单元位移量显示学号输出空格计算成绩单元位移量显示成绩输出空格输出名次名次加1RANK地址加1人数减1=0? N YRET返回PUT子程序:需要输出的数给AX CX=0CX加1AX除以BX余数入栈商=0? N Y余数出栈给AXAL加30H输出余数循环结束? N YRET返回INN子程序:BX=0输入数字是否为回车? Y NAL减30H字节扩展为字BX和AX交换AX乘以10BX加AX给BXRET返回4 关键代码n INPUTS子程序 MOV CX,0 MOV CL,NUMBER LEA SI,ID LEA DI,GRAND1ShuRu0: INC X PUSH CX ;保护输入学生个数 MOV CX,5ShuRu1: ;输入学号,保存到ID INPUT MOV SI,AL INC SI LOOP ShuRu1 MOV CX,6 ;输出空格,保证格式ShuRu2: MOV AH,2 MOV DL, INT 21H LOOP ShuRu2 CALL INN ;输入成绩 MOV DI,BX ;成绩保存到GRAND1 ADD DI,2 CLY MOV BX,0 MOV BL,X MOV RANKBX-1,BL ;保存输入次序 POP CX LOOP ShuRu0 n SORT子程序MOV CX,0 MOV Cl,NUMBER ;把GRAND1中成绩传送给GRAND2 LEA SI,GRAND1 LEA DI,GRAND2 CLD REP MOVSW MOV CX,0 MOV CL,NUMBER ;冒泡排序 DEC CX PAIXU1: PUSH CX ;保存外循环次数 LEA SI,GRAND2 MOV DI,0PAIXU2: MOV AX,SI CMP AX,SI+2 JGE NEXT ;降序 XCHG AX,SI+2 ;交换 MOV SI,AX MOV AL,RANKDI ;交换名次 XCHG AL,RANKDI+1 MOV RANKDI,ALNEXT: ADD SI,2 ;SI指向下一个数 INC DI LOOP PAIXU2 POP CX LOOP PAIXU1n PRINT子程序 MOV BX,0 MOV CX,0 MOV DI,0SHUCHU1: MOV AX,0 ;取名次 MOV AL,RANKDI DEC AL MOV BL,5 MUL BL LEA SI,ID ADD SI,AX ;算出对应学号的开始位置 MOV CX,5 ;输出学号LET2: MOV AH,2 MOV DL,SI INT 21H INC SI LOOP LET2 MOV CX,6 ;输出空格,保证格式LET0: MOV AH,2 MOV DL, INT 21H LOOP LET0 MOV AX,0 ;取名次 MOV AL,RANKDI DEC AL MOV BL,2 MUL BL LEA SI,GRAND1 ADD SI,AX ;算出对应成绩的开始位置 MOV BX,SI ;输出成绩 CALL PUT MOV CX,8 ;输出空格,保证格式LET1: MOV AH,2 MOV DL, INT 21H LOOP LET1 MOV BX,CONT ;输出排名 CALL PUT INC CONT ;下一个名次 INC DI ;DI指向下一个名次的序号 CLY DEC X ;判断输出学生个数 JNZ SHUCHU1n PUT子程序 MOV AX,BX MOV CX,0 MOV BX,10SHUCHU2: MOV DX,0 INC CX IDIV BX ;商存入AX,余数存入DX PUSH DX ;保存余数 CMP AX,0 JNZ SHUCHU2SHUCHU3: POP AX ;取出余数,放入AX ADD AX,0030H MOV DL,AL ;输出成绩 MOV AH,2 INT 21H LOOP SHUCHU3n INN子程序 MOV BX,0SHURU3: INPUT CMP AL,0DH ;回车结束输入 JZ SHURU4 SUB AL,30H CBW XCHG AX,BX MOV DX,10 MUL DX XCHG AX,BX ADD BX,AX JMP SHURU3SHURU4: RET5 收获和体会 收获:巩固了汇编语言知识,更加熟悉了子程序和宏定义的使用;训练了一号功能和二号功能的调用(因为我的程序中数据的输入输出都是用的一号和二号功能);掌握了子程序嵌套、循环嵌套;加深了数据在内存中存放结构的理解;掌握了冒泡排序,十进制数的输入、输出;熟悉了串处理中的语句;训练了低级语言的编程能力。 体会:编程时遇到了很多问题,比如说怎么把成绩和学号关联起来排序之后能对应输出。通过看书和同学讨论,想出了一个办法。定义一个数组RANK,记录学生信息输入次序,成绩排序时,数组RANK也排序。输出学生信息时,根据数组RANK推算出学号和成绩的地址然后输出。要想准确的推算出地址,就要清楚数据在内存中的存放结构,注意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学-陕西2025年宝鸡市高考模拟检测试题 (二)(宝鸡二模)试题和答案
- 竹制围栏施工方案范本
- 干挂石材拆除施工方案
- 借电缆合同范例
- 个人合伙企业合同范本
- 第1课《计算机网络》教学设计 2023-2024学年浙教版(2023)初中信息技术七年级上册
- 北京锅炉拆除合同范例
- 生态环境教育计划
- 优化人事部门工作效率的步骤计划
- 高中生职业规划与指导方案计划
- 防火涂料质量保证书
- 2023年全国职业院校技能大赛-老年护理与保健赛项规程
- 第九课 漂亮的班牌 教案 五下信息科技河南大学版
- 人教版高中语文必修3-梳理探究2《文学作品的个性化解读》-(共45张)(部编)课件
- 矿产资源开发合同备忘录范本
- 2024年广州市高三二模普通高中毕业班综合测试(二) 英语试卷及答案
- 大模型在刑侦技术中的应用探索
- 2024年苏州工业职业技术学院单招职业适应性测试题库完美版
- 城乡的规划法解读
- 2024年全国乡村医生资格考试专业基础知识复习题库及答案(共150题)
- 苏教版六年级下册数学第三单元第1课《解决问题的策略(1)》课件(公开课)
评论
0/150
提交评论