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
3. 已知微机原理课程有30 名学生选修,课程总评成绩以百分制形式,存放在字节数组ARRAY 中,现要求编写程序,把百分制成绩转换为五级制,即:A: 90~100 分,B: 80~89 分,C:7
于 2024-04-18 21:32:05 首次发布