用汇编对学生-学号-成绩排序.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用汇编对学生 - 学号 - 成绩排序 华北科技学院综合性 实验报告 课程名称 汇编语言 实验学期 XXXX 至 XXXX 学年 第 X 学期 学生所在系部 计算机学院网络工程系 年级 XXX 专业班级 网络 XXX班 学生姓名 XXXX 学号 XXXXXXXXXXXXXXX 任课教师 李冬艳 实验成绩 计算机学院制 华北科技学院综合性实验报告 《 汇 编 语 言》课程综合性实验报告 开课实验室:基础实验室二 日期: XXXXXXXX 实验题目 学生成绩排序 一、实验目的 进行汇编语言程序设计应用的综合性训练。 综合运用汇编语言循环程序、 子程序、宏指令编程方法,提高汇编语言程序设计能力的应用水平。 二、设备与环境 PC 兼容机、 Windows 操作系统、汇编程序 masm for windows 2012 三、实验内容 编制一程序,要求接收从键盘输入的一个班的学生的学号、姓名、成绩,对学生的成绩进行排序,最后把 学号、姓名、学生成绩、名次 显示出来。 实验要求: 1.必须画流程图。 2.本程序涉及汇编语言的多重循环、子程序及宏, 其中 成绩输入、计算学生名次、显示学生名次都分别用子程序,也可用宏处理。 3.要求用菜单选择 。具体要求: 输入序号 1 是数据录入并输出(包括姓名、学号、成绩) ; 输入序号 2 是排序后的数据输出(包括姓名、学号、成绩、名次) ; 输入序号 3(选做) 是可以按学号查找某学生,并输出其成绩,选择修改或不改成绩。 注意:所有数据录入必须有合法性判断。 四、实验结果及分析 第 1 页 华北科技学院综合性实验报告 (一)、程序实现的功能。 1.本程序较为简单录入成绩, 成绩间用空格隔开。 程序会根据程序录入的顺序自 动安排学号并根据成绩由大到小进行排序,输出名次。 2.程序自带报错功能,提示输入正确的数据,使数据录入有合法性判断。 (二)、程序的分析: 1、本程序中分别运用了宏,子程序、定义提示符等,来简化程序,让程序更 容易的看清楚。 ①:宏定义的举例: DISP MACRO STRING PUSH DX LEA DX,STRING MOV AH,09H INT 21H POP DX ENDM ②:子程序定义的举例: STORE PROC NEAR PUSH BX MOV [DI],BH ;(DI 目的变址寄存器 ,用于存放目的缓冲区的偏移地址 ) INC DI ; 偏移地址自加一 MOV [DI],BL INC DI POP BX RET STORE ENDP NEXT PROC NEAR PUSHCX PUSHBX PUSHCOUNT MOVCX,COUNT LEADI,BUFF ;BUFF地址传送给 DI P2: CMPCX,0 ; 比较 Cx与0 JZ DONE ; 结果为 0则转移到 DONE INC DI ;DI 自加一 INC DI ;DI 自加一 CMPBH,[DI] JA BIG JB SMALL INC DI 第 2 页 华北科技学院综合性实验报告 CMPBL,[DI] JA BIG2 INC DI DECCX JMP P2 SMALL: INC DI INC DI DECCX JMP P2 BIG2: DECDI BIG: PUSHCX MOVBX,COUNT MOVCL,02H SHLBX,CL; 逻辑左移,最高位数移入 CF,最低位补 0 MOVAX,[BUFF+BX-4] MOV[BUFF+BX],AX MOVAX,[BUFF+BX-2] MOV[BUFF+BX+2],AX POPCX DECCOUNT; 人数总和自减一 LOOP BIG ; DECDI DECDI DONE: POPCOUNT POPBX POPCX RET NEXT ENDP ③:提示符定义的举例: IFERROR PROC NEAR ; 检测输入是否有错 MOV DH,00H CMP AL, 0 JB ERROR CMP AL, 9 JA ERROR ;CF=0 且 ZF=0 转移 JMP NO_ERROR ERROR: DISP ERROR MOV DH,01H NO_ERROR: RET ;栈顶字单元出栈,其值赋值给 IP 寄存器,(IP 地址指针寄存器) 将栈顶字单元保存的便宜地址作为下一条指令的偏移地址 IFERROR ENDP 第 3 页 华北科技学院综合性实验报告 2、程序的设计: 流程图 提示所有数据录入必须有合法性判断。 键盘输入录入数据, 根据录入数据满足以下要求, 一是,必须是数字,二是,不能为 0,小于 9,这里是当一个数字为一个来处理的。 子程序 键盘 =0? 否 是 是 =9 否 显示 ERROR 跳转到 跳转到 跳转到 结束程序 宏定义: 宏定义主要用于将字符

文档评论(0)

137****0220 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档