从网上找的,我已经修改正确,生成的exe只能在dos下运行。
但不能重复输入
;给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90 分以上为A,80-89
;分为B,70-79 分为C,60-69分为D,60 分一下为E。
;要求:提示输入一分数score;
;键盘输入,并换行显示结果,
data segment
S1 DB 0DH,0AH,'Enter score: $'
S2 DB 0DH,0AH,'The grade is: $'
D1 DB 0 ;输入的成绩
data ends
code segment
assume cs:code,ds:data
start:
main proc far
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
while (true) { ConsoleWriteLine("请输入一个数:"); int a = intParse(ConsoleReadLine()); if (a == 50) { ConsoleWriteLine("正确"); break; } else if (a < 50) ConsoleWriteLine("太小"); else ConsoleWriteLine("太大"); }
以上就是关于成绩等级判断程序设计:90以上输出A,80~90输出B……;可以重复输入,有退出键功能。用汇编语言,谢谢您了全部的内容,包括:成绩等级判断程序设计:90以上输出A,80~90输出B……;可以重复输入,有退出键功能。用汇编语言,谢谢您了、如何使控制台程序连续输入我下面是一个代码,但只能输入一次,不知怎么可以输入多次、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)