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 网上有很多的,这个也是在网上查的,不过这个没具体说是三十个学生,你自己在改下就好了
追问这个我在网上也看到了,只是班里好多都是这个,我想有一个不同的。关键是汇编我不会...
追答题目是给定的,主程序都大同小异吧,我想不出其他的,你问其他高手咯