3. 已知微机原理课程有30 名学生选修,课程总评成绩以百分制形式,存放在字节数组ARRAY 中,现要求编写程序,把百分制成绩转换为五级制,即:A: 90~100 分,B: 80~89 分,C:7



DATA SEGMENT
    ARRAY DB 0,11,22,33,44,55,66,77,88,99  
    LEN DB $-ARRAY                            ; 数组长度
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA

START:
    ; 初始化DS寄存器指向数据段
    MOV AX,DATA
    MOV DS,AX

    ; 初始化CX寄存器为循环次数(数组长度)
    XOR CX,CX
    MOV CL,LEN

    ; 初始化BX寄存器指向成绩数组首地址
    LEA BX,ARRAY

CIRCULATION:
    ; 取BX指向地址处的成绩到AL寄存器
    MOV AL,[BX]

    ; 判断AL成绩所属等级(A、B、C、D或E)
    CMP AL,60
    JB E         ; 小于60,跳转到E
    CMP AL,70
    JB D         ; 小于70,跳转到D
    CMP AL,80
    JB C         ; 小于80,跳转到C
    CMP AL,90
    JB B         ; 小于90,跳转到B
    JNB A        ; 大于等于90,跳转到A

E:
    ; 修改成绩为"E"(ASCII码)
    MOV [BX],'E'
    ; 移动BX到下一个成绩位置
    INC BX
    ; 继续循环
    LOOP CIRCULATION
    JMP F

D:
    ; 修改成绩为"D"(ASCII码)
    MOV [BX],'D'
    ; 移动BX到下一个成绩位置
    INC BX
    ; 继续循环
    LOOP CIRCULATION
    JMP F

C:
    ; 修改成绩为"C"(ASCII码)
    MOV [BX],'C'
    ; 移动BX到下一个成绩位置
    INC BX
    ; 继续循环
    LOOP CIRCULATION
    JMP F

B:
    ; 修改成绩为"B"(ASCII码)
    MOV [BX],'B'
    ; 移动BX到下一个成绩位置
    INC BX
    ; 继续循环
    LOOP CIRCULATION
    JMP F

A:
    ; 修改成绩为"A"(ASCII码)
    MOV [BX],'A'
    ; 移动BX到下一个成绩位置
    INC BX
    ; 继续循环
    LOOP CIRCULATION
    JMP F

F:
    ; 在成绩数组末尾添加结束符"$"
    MOV [BX],'$'

    ; 输出更新后的成绩数组
    LEA DX,ARRAY
    MOV AH,09H
    INT 21H

    ; 结束程序
    MOV AX,4CH
    INT 21H
CODE ENDS

END START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值