;已知微机原理课程有 30 名学生选修,课程总评成绩以百分制形式,存放在字节数组 ARRAY 中
;现要求编写程序,把百分制成绩转换为五级制,
;即:A: 90~100 分,B: 80~89 分,C:70~79 分,D:60~69 分,E:小于 60 分。结果存放回原数组ARRAY 中。
DATA SEGMENT
ARRAY DB 3 DUP(59,70,60,77,80,99,56,86,95,100) ;定义成绩组
LEN DB $-TABLE ;计算得到数组长度LEN
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
XOR CX,CX ;CX清零
MOV CL,LEN ;设定循环次数
LEA BX,ARRAY ;获取ARRAY数组的首地址
X: MOV AL,[BX] ;获取数组元素
CMP AL,60 ;和60比较
JB L1 ;小于60,跳转L1
CMP AL,70 ;和70比较
JB L2 ;小于70,跳转L2
CMP AL,80 ;和80比较
JB L3 ;小于80,跳转L3
CMP AL,90 ;和90比较
JB L4 ;小于90,跳转L4
JMP L5 ;大于等于90,跳转L5
L1:
MOV [BX],'E' ;修改BX地址所指向的内容,修改成B的ascll码
INC BX ;使BX指针自增1
LOOP X ;循环 X ,如果cx=0则跳出循环 执行下一条语句
JMP F
L2:
MOV [BX],'D' ;修改BX地址所指向的内容,修改成B的ascll码
INC BX ;使BX指针自增1
LOOP X ;循环 X ,如果cx=0则跳出循环 执行下一条语句
JMP F
L3:
MOV [BX],'C' ;修改BX地址所指向的内容,修改成B的ascll码
INC BX ;使BX指针自增1
LOOP X ;循环 X ,如果cx=0则跳出循环 执行下一条语句
JMP F
L4:
MOV [BX],'B' ;修改BX地址所指向的内容,修改成B的ascll码
INC BX ;使BX指针自增1
LOOP X ;循环 X ,如果cx=0则跳出循环 执行下一条语句
JMP F
L5:
MOV [BX],'A' ;修改BX地址所指向的内容,修改成A的ascll码
INC BX ;使BX指针自增1
LOOP X ;循环 X ,如果cx=0则跳出循环 执行下一条语句
F:
MOV [BX],'$' ;在ARRAY字符串末尾加$结束符,方便后续输出
LEA DX,ARRAY ;输出ARRAY更新后的成绩组(只含有ABCDE)
MOV AH,09H
INT 21H
MOV AH,4CH ;结束程序
INT 21H
CODE ENDS
END START
已知微机原理课程有 30 名学生选修,课程总评成绩以百分制形式,存放在字节数组 ARRAY 中,现要求编写程序,把百分制成绩转换为五级制,即:A: 90~100 分,B: 80~89 分,C:70
于 2024-04-17 17:53:49 首次发布