帮我设计一个专题报告。
题目: 1、定义10以上个学生分数字数据,设计汇编语言程序对全部成绩进行统计分析,分5段统计人数(90-99,80-89,70-79,60-69,60以下),并输出平均分,最高分和最低分。
a,一、专题题目与要求
二、问题分析
三、概要设计
四、详细设计
五、运行过程及结果
六、源代码及注释
帮我设计一个专题报告。
题目: 1、定义10以上个学生分数字数据,设计汇编语言程序对全部成绩进行统计分析,分5段统计人数(90-99,80-89,70-79,60-69,60以下),并输出平均分,最高分和最低分。
a,一、专题题目与要求
二、问题分析
三、概要设计
四、详细设计
五、运行过程及结果
六、源代码及注释
源码如下 望采纳,谢谢
首先 流程如下
一、 实验目的
二、 实验所用仪器
三、 实验内容及基本原理
四、 实验数据记录
五、 实验结果分析及回答问题(或测试环境及测试结果)
最后 代码
CRLF MACRO
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT ;数据段,成绩区
DATA1 DB 89H,92H,74H,85H,96H,73H,62H,78H
DB 49H,59H,97H,66H,84H,81H,79H,67H
DB 90H,88H,76H,82H,71H,69H,84H,81H
DB 79H,65H,94H,86H,76H,82H,75H,83H
DA90 DB 16 DUP (0) ;首字节为人数,随后为成绩
DA80 DB 16 DUP (0)
DA70 DB 16 DUP (0)
DA60 DB 16 DUP (0)
DA50 DB 16 DUP (0)
KKK EQU DA90 - DATA1 ;总人数
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,ES:DATA
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,DATA1 ;SI 指向成绩表首
MOV CX,KKK ;循环数(总人数)送 CX
LOOP1: MOV AL,[SI] ;将成绩按字节送入AL
CMP AL,90H
JNC KK90 ;成绩 >= 90 转
CMP AL,80H
JNC KK80 ;成绩 >= 80 转
CMP AL,70H
JNC KK70 ;成绩 >= 70 转
CMP AL,60H
JNC KK60 ;成绩 >= 60 转
LEA DI,DA50 ;不及格区首地址送 DI
JMP TTT
KK60: LEA DI,DA60 ;60分区首地址送 DI
JMP TTT
KK70: LEA DI,DA70 ;70分区首地址送 DI
JMP TTT
KK80: LEA DI,DA80 ;80分区首地址送 DI
JMP TTT
KK90: LEA DI,DA90 ;90分区首地址送 DI
TTT: MOV BL,[DI] ;BL = 存放人数地址
INC BL ;该段人数+1
MOV [DI],BL ;存该段人数
MOV AL,[SI]
XOR BH,BH
MOV [DI+BX],AL ;成绩存入该段
INC SI ;修改地址指针
LOOP LOOP1
LEA SI,DA90
CALL DISPL ;显示 90 - 99分人数及成绩
LEA SI,DA80
CALL DISPL ;显示 80 - 89分人数及成绩
LEA SI,DA70
CALL DISPL ;显示 70 - 79分人数及成绩
LEA SI,DA60
CALL DISPL ;显示 60 - 69分人数及成绩
LEA SI,DA50
CALL DISPL ;显示 60分以下人数及成绩
RET
DISPL PROC NEAR ;子程序:显示某段人数及成绩
MOV BL,[SI] ;取人数
MOV AL,BL
MOV CL,10
CBW ;符号扩展指令,AL的内容扩展到AH,形成AX中的字。
;如果AL的最高有效位是0,则AH = 00,AL的最高有效位为1,则AH = FFH。AL不变。(即将AL的符号位移至AH)
DIV CL ;8位除法,被除数放在AX中,除数为8位在CL中,
;AL存储除法操作的商(即十位),AH存储除法操作的余数(即个位)
MOV DX,AX
ADD DL,30H ;将十位加30H转换为ASCII码,后面类似
MOV AH,02 ;调用INT 21H中断的2号功能进行显示输出,输出字符存在DL中
INT 21H ;显示十位
MOV DL,DH
ADD DL,30H
MOV AH,02
INT 21H ;显示个位
MOV DL,20H ;空格的ASCII码
MOV AH,02
INT 21H ;显示空格
DISP1: INC SI ;指向下一单元
MOV DL,20H
MOV AH,02
INT 21H
MOV DL,[SI] ;取成绩
MOV CL,04
ROL DL,CL
AND DL,0FH
ADD DL,30H
MOV AH,02
INT 21H ;显示十位
MOV DL,[SI]
AND DL,0FH
ADD DL,30H
MOV AH,02
INT 21H ;显示个位
DEC BL
JNZ DISP1
CRLF ;回车换行
RET
DISPL ENDP
MAIN ENDP
CODE ENDS
END START