- 1
- 0
- 约3.09千字
- 约 7页
- 2019-08-22 发布于山西
- 举报
华北科技学院计算机系综合性实验报告
PAGE
第 PAGE 6 页
华 北 科 技 学 院
实 验 报 告
课程名称 汇 编 语 言
实验学期 2008 至 2009 学年 第 1 学期
学生所在系部 计算机系
年级 2006 专业班级 网络B0ZZZ
学生姓名 XXX 学号 200607ZZZ
任课教师 李冬艳
实验成绩
计算机系制
《汇 编 语 言》课程综合性实验报告
开课实验室:软件一实验室 08年 11 月24 日
实验题目
显示学生名次表
一、实验目的
进行汇编语言程序设计应用的综合性训练。综合运用汇编语言循环程序和子程序编程方法,巩固提高汇编语言程序设计能力应用水平。
二、设备与环境
PC兼容机、Windows操作系统、汇编程序masm611
三、实验内容
编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于50字节的GRADE数组中,其中GRADE+N保存学号N+1的学生成绩。然后根据GRADE中的学生成绩,把学生名次填入50字节的RANK数组中,其中RANK+N的内容是学号为N+1学生的名次。再按学号把学生顺序把学生名次显示出来。
四、实验结果及分析
程序已完成的功能
程序的功能包括输入学生的成绩(按学号顺序),对输入的成绩排序并将名次存储,然后一起输出学号、成绩和名次。
实现方法
流程图如下:
结束
结束
输入input
调用input
排序sort
调用input
开始
输出
调用input
开始
开始
SI加1[Si]送AH调用input
SI加1
[Si]送AH
调用input
与[bx]比较调用input
与[bx]比较
调用input
大于?Y
大于?
Y
NN
N
N
Bx+1调用input
Bx+1
调用input
Al+1
调用input
数组结束?
数组结束?
A
Al送rank
N
N
数组结束?
数组结束?
Y
Y
结束
结束
3)程序代码:
crlf macro
mov ah,2
mov dl,0dh
int 21h
mov ah,2
mov dl,0ah
int 21h
endm
message macro mes ;show messages
mov ah,9
lea dx,mes
int 21h
endm
data SEGMENT
grade DB 50 DUP(?)
rank DB 50 DUP(?)
mes1 DB please input grades: $
mes2 DB num grade rank$
kongge DB $
num dw ?
data ENDS
codes SEGMENT
ASSUME CS:codes,DS:data,ES:data
start:
MOV AX,data
MOV DS,AX
MOV ES,AX
CALL input
CALL sort
CALL output
MOV AH,1
INT 21h
MOV AH,4ch
INT 21h
input PROC
message mes1
crlf
LEA SI,grade
input1:
MOV BL,0
MOV CX,2
input2:
MOV AH,1
INT 21h
cmp al,0dh
je exit
SUB AL,30h
XCHG AL,BL
MOV DL,10
MUL DL
XCHG AL,BL
ADD BL,AL
LOOP input2
crlf
MOV [SI],BL
INC SI
inc num
DEC BH
CMP BH,0
JNE input1
exit: RET
input ENDP
sort P
原创力文档

文档评论(0)