键盘10个学生的成绩,如果低于60分,则F (Fail),如 果高于或等于90 分则显示 G (good),否则显示 P (Pass)。汇编语言
时间: 2023-12-10 10:41:47 浏览: 33
下面是汇编语言的代码示例,假设成绩存储在数据段的数组 `grades` 中:
```
DATA SEGMENT
grades DB 10 DUP(?)
DATA ENDS
CODE SEGMENT
START:
MOV AX, @DATA ; 初始化数据段寄存器
MOV DS, AX
MOV CX, 10 ; CX 寄存器存储循环次数
LEA SI, grades ; SI 寄存器存储数组 grades 的地址
LOOP_START:
MOV AL, [SI] ; 把当前成绩存入 AL 寄存器
CMP AL, 60 ; 比较成绩是否低于 60 分
JB FAIL_LABEL ; 如果低于 60 分,跳转到 FAIL_LABEL 标签
CMP AL, 90 ; 比较成绩是否高于或等于 90 分
JGE GOOD_LABEL ; 如果高于或等于 90 分,跳转到 GOOD_LABEL 标签
MOV DL, 'P' ; 如果成绩在 60-89 分之间,显示 P (Pass)
JMP PRINT_LABEL ; 跳转到 PRINT_LABEL 标签进行输出
GOOD_LABEL:
MOV DL, 'G' ; 如果成绩在 90 分或以上,显示 G (Good)
JMP PRINT_LABEL ; 跳转到 PRINT_LABEL 标签进行输出
FAIL_LABEL:
MOV DL, 'F' ; 如果成绩低于 60 分,显示 F (Fail)
PRINT_LABEL:
CALL PRINT_CHAR ; 调用输出字符子程序
INC SI ; 指向下一个成绩
LOOP LOOP_START ; 循环
MOV AH, 4CH ; 退出程序
INT 21H
PRINT_CHAR PROC
MOV AH, 02H ; 输出字符子程序
INT 21H
RET
PRINT_CHAR ENDP
CODE ENDS
END START
```
注意,上述代码中使用了 `INT 21H` 中断来进行输出操作,这需要在 DOS 环境下执行。如果需要在其他环境下运行,需要使用相应的输出函数替换 `PRINT_CHAR` 子程序。