帮我设计一个微机原理专题报告

帮我设计一个专题报告。

题目: 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

 

可以参考这篇文章,希望对你有帮助:微机原理实验4:统计学生成绩_人间值得,你更值得-CSDN博客