求助 高手来看看啊
实验内容:编写程序,将20个百分制的分数按<60,60~69,70,79,80,89,90,99,100共六档进行分类,统计出每档的个数及总数,
并按下面的格式显示在屏幕上:
SCORE [<60] : 个数
SCORE [60--69]: 个数
SCORE [70--79]: 个数
SCORE [80--89]: 个数
SCORE [90--99]: 个数
SCORE [=100] : 个数
TOTAL NUMBER : 个数
;................SORT.ASM.....................
DATA SEGMENT
MES0 DB '92,85,74,81,70,68,65,78,54,43',0AH,0DH
DB '94,100,83,88,79,83,79,69,62,60',0AH,0DH,'$' ;定义用于显示的字符串
MES1 DB 'SCORE [<60] :','$'
MES2 DB 'SCORE [60--69]:','$'
MES3 DB 'SCORE [70--79]:','$'
MES4 DB 'SCORE [80--89]:','$'
MES5 DB 'SCORE [90--99]:','$'
MES6 DB 'SCORE [=100] :','$'
MES7 DB 'TOTAL NUMBER :','$'
RESULT DB 92,85,74,81,70,68,65,78,54,43
DB 94,100,83,88,79,83,79,69,62,60 ;存放20个十进制数
;-------------------------------------------------
TOTAL DB 00
S5 DB 00
S6 DB 00
S7 DB 00
S8 DB 00
S9 DB 00
S10 DB 00
DATA ENDS
编程提示:
提示:1、显示字符串用
MOV DX, OFFSET XXXX
MOV AH, 09
INT 21H
2、显示单个字符用
MOV DL, 'X'
MOV AH, 02
INT 21H
3、分类后的结果需要转换成ASCII码并在屏幕上显示,可以将ASCII码的转换程序写成子程序以供调用。
MES0 DB '92,85,74,81,70,68,65,78,54,43',0AH,0DH
DB '94,100,83,88,79,83,79,69,62,60',0AH,0DH,'$'
MES1 DB 'SCORE [<60] :','$'
MES2 DB 'SCORE [60--69]:','$'
MES3 DB 'SCORE [70--79]:','$'
MES4 DB 'SCORE [80--89]:','$'
MES5 DB 'SCORE [90--99]:','$'
MES6 DB 'SCORE [=100] :','$'
MES7 DB 'TOTAL NUMBER :','$'
RESULT DB 92,85,74,81,70,68,65,78,54,43
DB 94,100,83,88,79,83,79,69,62,60
;-------------------------------------------------
TOTAL DB 00
S5 DB 00
S6 DB 00
S7 DB 00
S8 DB 00
S9 DB 00
S10 DB 00
DATA ENDS
CDSEG SEGMENT
ASSUME CS:CDSEG,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CX,20
MOV BX,OFFSET RESULT
MOV SI,0
R1: MOV AL,[BX+SI]
CMP AL,60
JL L1
CMP AL,70
JL L2
CMP AL,80
JL L3
CMP AL,90
JL L4
CMP AL,100
JL L5
CMP AL,100
JZ L6
L1:
MOV AL,S5
ADD AL,1
DAA
MOV S5,AL
JMP NEXT
L2:
MOV AL,S6
ADD AL,1
DAA
MOV S6,AL
JMP NEXT
L3:
MOV AL,S7
ADD AL,1
DAA
MOV S7,AL
JMP NEXT
L4:
MOV AL,S8
ADD AL,1
DAA
MOV S8,AL
JMP NEXT
L5:
MOV AL,S9
ADD AL,1
DAA
MOV S9,AL
JMP NEXT
L6:
MOV AL,S10
ADD AL,1
DAA
MOV S10,AL
JMP NEXT
NEXT:
INC SI
LOOP R1
MOV DX,OFFSET MES0
MOV AH,09
INT 21H
MOV DX,OFFSET MES1
MOV AH,09H
INT 21H
MOV AL,S5
CALL N
MOV DX,OFFSET MES2
MOV AH,09H
INT 21H
MOV AL,S6
CALL N
MOV DX,OFFSET MES3
MOV AH,09H
INT 21H
MOV AL,S7
CALL N
MOV DX,OFFSET MES4
MOV AH,09H
INT 21H
MOV AL,S8
CALL N
MOV DX,OFFSET MES5
MOV AH,09H
INT 21H
MOV AL,S9
CALL N
MOV DX,OFFSET MES6
MOV AH,09H
INT 21H
MOV AL,S10
CALL N
MOV DX,OFFSET MES7
MOV AH,09H
INT 21H
MOV AL, TOTAL
CALL N
MOV AX,4C00H
INT 21H
N PROC NEAR
PUSH CX
MOV BL,AL
AND AL,0F0H
MOV CL,04
ROR AL,CL
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,BL
AND AL,0FH
AND AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
POP CX
RET
N ENDP
CDSEG ENDS
END START
页:
[1]
