汇编:输入30个学生的成绩 90分以上的显示A,80-89的显示B,70-79的显示C,60-69的显示D,60一下的显示E

急!希望大神的程序能够运行!

data segment

S1 DB 0DH,0AH,'Enter score: $'

S2 DB 0DH,0AH,'The grade is: $'
D1 DB 0 ;输入的成绩

data ends

code segment
main proc far
assume cs:code,ds:data

start:
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX

MOV AH,9 ;提示输入成绩
MOV DX,OFFSET S1
INT 21H

RE_I:
MOV AH,07H ;输入数字(用不回显方式)
INT 21H
CMP AL,0DH
JNE N1

mov ah,9
mov dx,offset S2
int 21h

MOV AL,D1
CMP AL,90
JB X1
MOV DL,'A'
JMP DISP

X1:
CMP AL,80
JB X2
MOV DL,'B'
JMP DISP

X2:
CMP AL,70
JB X3
MOV DL,'C'
JMP DISP
X3:

CMP AL,60
JB X4
MOV DL,'D'
JMP DISP

X4:
MOV DL,'E'
DISP:
MOV AH,2
INT 21H
JMP EXIT

N1:
CMP AL,'0' ;过滤掉数字外的字符
JB RE_I
CMP AL,'9'
JA RE_I
MOV DL,AL
PUSH AX
MOV AH,2 ;显示输入的数字
INT 21H
MOV AL,D1
MOV AH,0
MOV BL,10
MUL BL
POP BX
SUB BL,30H
ADD AL,BL
MOV D1,al
Jmp RE_I

EXIT:
RET

main endp

code ends
end start 网上有很多的,这个也是在网上查的,不过这个没具体说是三十个学生,你自己在改下就好了追问

这个我在网上也看到了,只是班里好多都是这个,我想有一个不同的。关键是汇编我不会...

追答

题目是给定的,主程序都大同小异吧,我想不出其他的,你问其他高手咯

温馨提示:答案为网友推荐,仅供参考