文档库 最新最全的文档下载
当前位置:文档库 › 微机原理-学生成绩名次表实验.

微机原理-学生成绩名次表实验.

CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
STUNUM EQU 10
MESS1 DB 'INPUT 10 STUDENTS SCORE',0DH,0AH,'$';请依次输入1-10号学生的成绩
ERROR DB 'INPUT ERROR!',0DH,0AH,'$';输入错误,请重新输入
MESS2 DB 'THE ORDER OF 10 STUDENTS SCORE IS:',0DH,0AH,'$';1-10号学生名次依次为
EMARK DB ?
ORG 1000H
SCORE DB 30 DUP(?)
ORG 2000H
SEQU DB 30 DUP(?)
DATA ENDS
STACK SEGMENT
STA DW 32 DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP ;初始化
MOV AH,09H
MOV DX,OFFSET MESS1
INT 21H ;显示提示信息
MOV SI,OFFSET SCORE ;成绩表首址
MOV CX,STUNUM ;学生数送CX
MOV EMARK,0
XUE1: CALL MIN6 ;读取键入数值送DX
CMP EMARK,01H
JE START
MOV [SI],DL ;存入成绩表缓冲区中
INC SI ;指向下一单元
LOOP XUE1
MOV CX,STUNUM ;学生数
MOV DI,OFFSET SEQU ;名次表首址
XUE2: CALL SCAN ;扫描子程序
MOV AL,STUNUM ;学生数
SUB AL,CL
INC AL ;计算名次
MOV BX,DX
MOV [DI+BX],AL ;记DX学号对应名次
LOOP XUE2
MOV AH,09H
LEA DX,MESS2
INT 21H
MOV CX,STUNUM ;学生数
MOV SI,OFFSET SEQU ;名次表首址
XUE3: MOV AL,[SI]
CALL XUE6
PUSH DX
PUSH AX
MOV AH,02
MOV DL,20H
INT 21H
POP AX
POP DX
INC SI
LOOP XUE3 ;显示排定的学生名次
MOV AX,4C00H
INT 21H
SCAN PROC NEAR ;子程序,每扫描一遍成绩表缓冲区, 找出其成绩最高者
;(由DX指针指示对应学生),之后将该成绩清除以便下一次扫描
PUSH CX
MOV CX,STUNUM ;学生数
MOV AL,00H ;最低成绩
MOV BX,OFFSET SCORE
MOV SI,BX ;指向成绩表首址
XUE4: CMP AL,[SI]
JAE XUE5 ;AL中的成绩不低于成绩表指针SI所指单元的成绩则转XUE5
MOV AL,[SI] ;AL存放较高的成绩
MOV DX,SI
SUB DX,BX ;DX为对应学号
XUE5: INC SI ;指向下一单元
LOOP XUE4
ADD BX,DX
MOV BYTE PTR [BX],00H ;本次扫描成绩最高者清0
POP CX
RET
SCAN ENDP
XUE6 PROC NEAR ;显示子程序
PUSH CX
MOV BL,AL
MOV DL,BL
MOV CL,04
ROL DL,CL
AND DL,0FH
CALL XUE7
MOV DL,BL
AND DL,0FH
CALL XUE7
POP CX
RET
XUE6 ENDP
XUE7 PROC NEAR
ADD DL,30H
CMP DL,3AH
JB MIN1
ADD DL,27H
MIN1: MOV AH,02H
INT 21H
RET
XUE7 ENDP

MIN6 PROC NEAR

;键读入子程序
PUSH CX
XOR DX,DX
MIN2: MOV AH,01H
INT 21H
CMP AL,0DH
JZ MIN4
SUB AL,30H
JB MIN3
CMP AL,09H
JBE MIN5
JMP MIN3
MIN5: MOV CL,04
SHL DX,CL
XOR AH,AH
ADD DX,AX
JMP MIN2
MIN3: MOV AH,09H
MOV DX,OFFSET ERROR
INT 21H
MOV EMARK,01H
MIN4: PUSH DX
CRLF
POP DX
POP CX
RET
MIN6 ENDP
CODE ENDS
END START

相关文档
相关文档 最新文档