键盘3个学生的成绩,如果低于60分,则F (Fail),如 果高于或等于90 分则显示 G (good),否则显示 P (Pass)。编写完 整的汇编语言程序来实现。
时间: 2024-02-16 12:03:48 浏览: 26
下面是一份 NASM 语法的 x86 汇编代码,可以实现你的要求:
```
section .data
scores db 80, 45, 95 ; 学生 A、B、C 的成绩
n db 3 ; 学生数量
section .text
global _start
_start:
mov ecx, n ; 用 ecx 存储循环次数
mov esi, scores ; 用 esi 存储成绩数组的地址
loop_start:
lodsb ; 从数组中读取一个成绩,存入 al 中
cmp al, 60 ; 比较成绩和 60
jb fail_label ; 如果小于 60,跳转到 fail_label
cmp al, 90 ; 比较成绩和 90
jae good_label ; 如果大于等于 90,跳转到 good_label
jmp pass_label ; 否则跳转到 pass_label
fail_label:
mov al, 'F' ; 设置输出字符为 'F'
jmp print_label ; 跳转到 print_label
good_label:
mov al, 'G' ; 设置输出字符为 'G'
jmp print_label ; 跳转到 print_label
pass_label:
mov al, 'P' ; 设置输出字符为 'P'
jmp print_label ; 跳转到 print_label
print_label:
; 输出 al 中存储的字符
mov ah, 0x0e ; 设置 0x0e 号 BIOS 中断,用于输出字符
int 0x10 ; 调用 BIOS 中断
loop loop_start ; 循环处理下一个成绩
; 退出程序
mov eax, 1
xor ebx, ebx
int 0x80
```
这个程序使用了 LODSB 指令来从数组中读取成绩,同时使用了循环和条件跳转来判断每个成绩的等级,并输出等级对应的字符。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)