输入的一个班的学生成绩(汇编语言)_第1页
输入的一个班的学生成绩(汇编语言)_第2页
输入的一个班的学生成绩(汇编语言)_第3页
输入的一个班的学生成绩(汇编语言)_第4页
输入的一个班的学生成绩(汇编语言)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 汇 编 语 言课程综合性实验报告开课实验室: 年 月 日实验题目显示学生名次表一、 实验目的进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和程序编程方法,巩固提高汇编语言程序设计能力应用水平。二、设备与环境PC兼容机、Windows操作系统、汇编程序masm611三、实验内容编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入50字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号把学生顺序把学生名次显示出来四、实验结果及分析(

2、包括已完成什么功能,如何实现的、遇到的问题和解决办法、流程图和关键代码解释,收获和体会等) (1)完成的功能:动态输入学生学号和成绩,对学生成绩进行排序并设置名次,再按学号把学生成绩和名次显示出来。 (2)实现办法:充分运用宏汇编实现回车换行、数据的输入和输出,使用过程定义伪操作实现排名次和学生学号、成绩和名次的显示。(3)流程图:开始 调用input子程序输入学号和成绩是否继续输入 Y N调用rank子程序成绩排序并设置名次调用print子程序按学号显示成绩和名次结束(4)关键代码:1、数据段定义:DATAS SEGMENT n db 0 mc db 50 dup (0) cj db 50

3、dup (?) xh db 50 dup (?) m1 db 13,10,Please input the ID: ,13,10,$ m2 db 13,10,Please input the mark:,13,10,$ m3 db 13,10,Do you want to continue ?,13,10,$ s1 db 13,10, *,13,10,$ s2 db 13,10,ID mark rank ,13,10,$ kongge db ,$DATAS ENDS 2、数据输入、输出宏定义: shuru macro mov ah,1 int 21h sub al,30h cbw mov bl

4、,10 mul bl mov dl,al mov ah,1 int 21h sub al,30h add dl,al endm shuchu macro num mov al,num cbw mov bl,10 div bl mov bl,ah mov dl,al add dl, 30h mov ah,2 int 21h mov dl,bl add dl,30h mov ah,2 int 21h endm3、排序并设置名次:rank proc near mov ah,0 mov al,1 mov si,0 mov cl,n mov ch,0 mov dl,99 mov bh,0e1: push

5、 cxe2: mov bl,cjsi cmp bl,dl jne e4 add mcsi,al add bh,1 cmp bh,1 je e6 jmp e4e3: sub al,1e4: add si,1 loop e2 cmp bh,0 jne e5 pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1e5: pop ax pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1 e6: add al,1 push ax jmp e3 e7: ret rank endp4、按学

6、号显示成绩和名次:print proc near output s1 output s2 mov cl,n mov ch,0 mov si,0exit: shuchu xhsi output kongge shuchu cjsi output kongge shuchu mcsi crlf add si,1 loop exit retprint endp(5)运行结果截图: (6)收获和体会:大一学习的是C语言,因此,在学汇编语言之初,面对格式之类的感觉很不适应。C语言用的是一个又一个变量,而汇编语言则是利用一个又一个寄存器来实现。而写代码的时候,经常会因为一些符号,或者字长的失误,完全是无心

7、之失而导致程序无法执行。而回过来找错误的时候,又往往忽略了这些细节而找不到错误的根源。学习汇编是个艰辛的过程,从C语言到汇编的不适,到牢记大量的指令,并熟练应用,都要花费很多时间适应。对有些指令的源操作数和目的操作数,以及操作结果的存放位置都要熟记于心。否则,你将很难应用这些指令,学习汇编的一个重要能力就是能够熟练调试所写程序,当某个程序不能执行时,而又发现不了错误,这就要对程序进行逐步调试了。这样更容易发现错误点并牢记。教 师 评 价评定项目ABCD评定项目ABCD算法正确操作熟练程序结构合理实验结果正确语法、语义正确文字流畅、报告规范其他:评价教师签名:年 月 日附代码:crlf macr

8、o mov ah,2 mov dl,10 int 21h mov ah,2 mov dl,13 int 21h endm output macro string mov dx,offset stringmov ah,9int 21hendmshuru macro mov ah,1int 21hsub al,30hcbwmov bl,10mul bl mov dl,al mov ah,1int 21hsub al,30h add dl,al endm shuchu macro num mov al,num cbw mov bl,10 div bl mov bl,ah mov dl,al add

9、dl, 30hmov ah,2int 21h mov dl,bladd dl,30hmov ah,2int 21h endm DATAS SEGMENTn db 0 mc db 50 dup (0) cj db 50 dup (?) xh db 50 dup (?) m1 db 13,10,Please input the ID: ,13,10,$ m2 db 13,10,Please input the mark:,13,10,$ m3 db 13,10,Do you want to continue ?,13,10,$ s1 db 13,10, *,13,10,$s2 db 13,10,I

10、D mark rank ,13,10,$kongge db ,$DATAS ENDS STACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AXagain: call input add n,1 output m3 mov ah,1 int 21h cmp al,y je again call rank call print MOV AH,4CH INT 21H input proc near output m1 shuru mov bl,n mov

11、 bh,0 mov xhbx,dl output m2 shuru mov bl,n mov bh,0 mov cjbx,dl retinput endprank proc near mov ah,0 mov al,1 mov si,0 mov cl,n mov ch,0 mov dl,99 mov bh,0e1: push cxe2: mov bl,cjsi cmp bl,dl jne e4 add mcsi,al add bh,1 cmp bh,1 je e6 jmp e4e3: sub al,1e4: add si,1 loop e2 cmp bh,0 jne e5 pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1e5: pop ax pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1 e6: add al,1 push ax jmp e3 e7: ret rank endpprint p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论