用汇编语言编写统计各个分数段人数的程序

用汇编语言编写统计各个分数段人数的程序

ID:47299138

大小:76.50 KB

页数:17页

时间:2019-08-21

用汇编语言编写统计各个分数段人数的程序_第1页
用汇编语言编写统计各个分数段人数的程序_第2页
用汇编语言编写统计各个分数段人数的程序_第3页
用汇编语言编写统计各个分数段人数的程序_第4页
用汇编语言编写统计各个分数段人数的程序_第5页
资源描述:

《用汇编语言编写统计各个分数段人数的程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、用汇编语言编写统计各个分数段人数的程序一、实验目的1、进一步熟悉分支、循环程序设计的思路和方法2、掌握各类子程序的设计方思路和技巧二、实验内容设数据段有20个学生的单科成绩(百分制),请按照小于60,60-69,70-79,80-89,90-99,100这6个档次编程统计人数。三、程序扩展该程序可以作为一个建立学生成绩档案的子程序,在之基础上加以改进,通过增加统计学生各门成绩、成绩排名等一系列子程序,可以建立学生档案。四、设计思路(参考流程图)五、附录:1、程序清单如下:SSEGSEGMENTPARAS

2、TACK'stack'DW100HDUP(0);初始化堆栈大小为100SSEGENDSDSEGSEGMENTBUFDW52,53,32,54,66,54,71,65,57,98DW75,82,51,52,92,55,100,56,61,89COUNTEQU$-BUF;COUNT的值为BUF所占的字节数STR1DB'0-59:','$'STR2DB'60-69:','$'STR3DB'70-79:','$'STR4DB'80-89:','$'STR5DB'90-99:','$'STR6DB'100:','

3、$'RESDW20DUP(?);在存储区RES中设置15个初值为0的数据DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGMAINPROCFAR;主程序入口MOVAX,DSEGMOVDS,AXSTART:MOVCX,COUNT/2+1;设计数器初值MOVDI,OFFSETRES;取RES的首址MOVSI,OFFSETBUF-2;取BUF的首址BEGIN:INCSIINCSI;修改SI指针DECCX;设循环次数CXJZOUTPUT;循环结束,则转OUTPUTMOVAX,[SI

4、];取BUF中第一个数放到AX寄存器CMPAX,60;将AX中数据和60进行比较JBLOP1;小于60,则转LOP1CMPAX,70;否则,继续与70进行比较JBLOP2;小于70,则转LOP2CMPAX,80;否则,继续与80进行比较JBLOP3;小于80,则转LOP3CMPAX,90;否则,继续与90进行比较JBLOP4;小于90,则转LOP4CMPAX,100;否则,继续与100进行比较JBLOP5;小于100,则转LOP5JZLOP6;等于100,则转LOP6LOP1:MOVBX,[DI]INC

5、BXMOV[DI],BX;对小与60的数据计数,并把其放在RES的第一个字节中JMP;转到BEGINLOP2:MOVBX,[DI+2]INCBXMOV[DI+2],BX;对60-69的数据计数,并把其放在RES的第二个字节中JMPBEGIN;转到BEGINLOP3:MOVBX,[DI+4]INCBXMOV[DI+4],BX;对70-79的数据计数,并把其放在RES的第三个字节中JMPBEGIN;转到BEGINLOP4:MOVBX,[DI+6]INCBXMOV[DI+6],BX;对80-89的数据计数,并

6、把其放在RES的第四个字节中JMPBEGIN;转到BEGINLOP5:MOVBX,[DI+8]INCBXMOV[DI+8],BX;对90-99的数据计数,并把其放在RES的第五个字节中JMPBEGIN;转到BEGINLOP6:MOVBX,[DI+10]INCBXMOV[DI+10],BX;对等于100的数据计数,并把其放在RES的第六个字节中JMPBEGIN;转到BEGINOUTPUT:LEADX,STR1;取字符串STR1的首址MOVAH,9INT21H;输出字符串STR1CALLDATCHLEADX

7、,STR2;取字符串STR2的首址MOVAH,9INT21H;输出字符串STR2ADDDI,2CALLDATCHLEADX,STR3;取字符串STR3的首址MOVAH,9INT21H;输出字符串STR3ADDDI,2CALLDATCHLEADX,STR4;取字符串STR4的首址MOVAH,9INT21H;输出字符串STR4ADDDI,2CALLDATCHLEADX,STR5;取字符串STR5的首址MOVAH,9INT21H;输出字符串STR5ADDDI,2CALLDATCHLEADX,STR6;取字符串

8、STR6的首址MOVAH,9INT21H;输出字符串STR6ADDDI,2CALLDATCHMOVAH,1INT21HMOVAH,4CHINT21H;返回DOSDATCHPROC;数值转换为ASCII码的子程序PUSHDXPUSHCXPUSHBXPUSHAXXORDX,DXMOVAX,[DI]MOVCX,10DIVCXMOVBX,DXMOVDL,ALADDDL,30HMOVAH,2INT21HMOVDL,BLADDDL,30HMOVAH,2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。