键盘10个学生的成绩,如果低于60分,则F (Fail),如 果高于或等于90 分则显示 G (good),否则显示 P (Pass)。汇编语言程
时间: 2023-12-10 09:40:55 浏览: 135
汇编语言根据分数分级
以下是汇编语言程序实现要求的功能:
```
.MODEL SMALL
.STACK 100H
.DATA
grade DB 10 DUP('$') ; 存储10个学生成绩
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX ; 将DS指向数据段
MOV CX, 10 ; 循环10次,读取每个学生的成绩
MOV BX, 0 ; 初始化BX寄存器,用于存储当前学生的成绩
L1:
MOV AH, 01H ; 读取键盘输入
INT 21H
SUB AL, 30H ; 将ASCII码转换为数字
CMP AL, 6FH ; 判断是否按下ESC键
JE L2 ; 如果按下ESC键则跳转到L2标签
MOV [grade+BX], AL ; 将当前学生的成绩存储到数组中
INC BX ; BX寄存器加1,指向下一个学生的成绩
LOOP L1 ; 循环读取剩余的学生的成绩
L2:
MOV CX, 10 ; 循环10次,输出每个学生的成绩对应的等级
MOV BX, 0 ; 初始化BX寄存器,用于存储当前学生的成绩
L3:
MOV AL, [grade+BX] ; 将当前学生的成绩加载到AL寄存器中
CMP AL, 60 ; 判断成绩是否低于60分
JB F ; 如果低于60分则跳转到F标签
CMP AL, 90 ; 判断成绩是否高于或等于90分
JAE G ; 如果高于或等于90分则跳转到G标签
JMP P ; 否则跳转到P标签
F:
MOV DL, 'F' ; 输出F
JMP OUT ; 跳转到OUT标签
G:
MOV DL, 'G' ; 输出G
JMP OUT ; 跳转到OUT标签
P:
MOV DL, 'P' ; 输出P
OUT:
MOV AH, 02H ; 输出字符
INT 21H
INC BX ; BX寄存器加1,指向下一个学生的成绩
LOOP L3 ; 循环输出剩余学生的成绩对应的等级
MOV AH, 4CH ; 返回操作系统
INT 21H
MAIN ENDP
END MAIN
```
程序的运行过程如下:
1. 循环10次,读取每个学生的成绩。
2. 如果按下ESC键,则跳出第一个循环。
3. 循环10次,输出每个学生的成绩对应的等级。
阅读全文