dos汇编语言程序如何输出及格人数和不及格人数
时间: 2024-02-03 15:12:29 浏览: 22
下面是一个简单的 DOS 汇编程序,它可以计算及格人数和不及格人数并将其输出到屏幕上:
```assembly
.model small
.stack 100h
.data
msg_pass db 'Pass:', 0ah, '$'
msg_fail db 'Fail:', 0ah, '$'
pass_count dw 0
fail_count dw 0
scores db 70h, 60h, 80h, 90h, 50h, 40h, 30h, 85h, 75h, 65h, '$'
.code
main proc
mov ax, @data
mov ds, ax
mov si, offset scores ; 设置指向分数数组的指针
mov cx, 0 ; 初始化计数器
; 循环遍历分数数组
check_score:
cmp byte ptr [si], 60h ; 判断是否及格
jge count_pass
jmp count_fail
count_pass:
inc pass_count ; 计数及格人数
jmp next_score
count_fail:
inc fail_count ; 计数不及格人数
jmp next_score
next_score:
add si, 1 ; 指向下一个分数
inc cx ; 增加计数器
cmp cx, 10 ; 判断是否遍历完数组
jl check_score
; 输出及格人数和不及格人数
mov ah, 09h
mov dx, offset msg_pass
int 21h
mov ah, 02h
mov dl, pass_count
add dl, 30h ; 转换为 ASCII 码
int 21h
mov ah, 09h
mov dx, offset msg_fail
int 21h
mov ah, 02h
mov dl, fail_count
add dl, 30h ; 转换为 ASCII 码
int 21h
mov ah, 4ch
int 21h
main endp
end main
```
该程序使用分数数组来模拟学生成绩,然后遍历数组并计算及格人数和不及格人数。最后,它使用 DOS 中断来将结果输出到屏幕上。
请注意,该程序仅供参考,并且可能需要进行修改以适应您的特定情况。