实验二 编程实现循环程序

实验二 编程实现循环程序

ID:1245550

大小:195.00 KB

页数:8页

时间:2017-11-09

实验二 编程实现循环程序_第1页
实验二 编程实现循环程序_第2页
实验二 编程实现循环程序_第3页
实验二 编程实现循环程序_第4页
实验二 编程实现循环程序_第5页
资源描述:

《实验二 编程实现循环程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二编程实现循环程序一、实验目的:1、进一步熟悉汇编语言的分支、循环程序设计的思路和方法;2、掌握各类子程序的设计方思路和技巧;3、学习使用EMU8086进行汇编程序设计;4、学习在WIN764位上运行汇编程序的编译、连接和运行;5、学习用软件DOSBOX模拟DOS。二、实验要求:1、自行定义某班30个学生的某课程成绩(0~100分之间);2、统计>=90分、80~89分、70~79分、60~69分、60分以下的人数;3、将结果转为ASCII码显示出来;4、要求有分数段字符串提示,并每个分数段一行显示。三、实验流程图:四、实验过程:1、在EMU8086上编写程序,编写完程

2、序的格式保存为.ASM,再保存到D:TRY文件夹里;2、打开软件DOSBOX0.74,可以看到Z:>,这是DOSBOX里的虚拟盘,我们采用mount命令将其转变到自己的D盘;如:mountd:d:try为打开D盘里的try文件夹,try文件夹作为汇编程序的存放位置;3、键入D:,转换盘符;4、键入MASM,再输入汇编程序名(.asm文件):SY25、键入LINK,再输入编译程序名(.obj文件):SY26、键入SY2.EXE,运行文件四、实验结果:五、实验收获:通过此次试验,使我学习在WIN764位的系统环境下,使用软件DOSBOX对汇编程序进行编译、连接和运行。从而

3、解决了在WIN764位下不能进行上述操作的问题,减低了初学者学习汇编的障碍。同时,试验也使我更一步掌握了利用系统功能调用的“INT21H”进行字符的输入、字符串的显示方法,加强了对分支、循环程序设计的理解和应用。同时,也练习了在软件Emu8086下进行汇编程序的编写、调试和运行的步骤和方法。六、实验程序:STACKSEGMENTPARASTACK'stack'DW100HDUP(0);初始化堆栈大小为100STACKENDSDATASEGMENTBUFDW98,96,95,88,87,85,83,82,80,80DW77,77,76,74,73,72,71,70,70,68

4、DW66,65,63,62,61,60,59,58,55,53COUNTEQU$-BUF;COUNT的值为BUF所占的字节数L1DB'[<60]:','$'L2DB'[60-69]:','$'L3DB'[70-79]:','$'L4DB'[80-89]:','$'L5DB'[>=90]:','$'RESDW20DUP(?);在存储区RES中设置15个初值为0的数据DATAENDSCODESEGMENTMAINPROCFAR;主程序入口ASSUMESS:STACK,CS:CODE,DS:DATAPUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AX;/*

5、**************************************/;/*****************************/;/*******************/;/*********/;/*/START:MOVCX,COUNT/2+1;设计数器初值MOVDI,OFFSETRES;取RES的首址MOVSI,OFFSETBUF-2;取BUF的首址BEGIN:INCSIINCSI;修改SI指针DECCX;设循环次数CXJZOUTPUT;循环结束,则转OUTPUTMOVAX,[SI];取BUF中第一个数放到AX寄存器CMPAX,60;将AX中数据和60进行

6、比较JBLOP1;小于60,则转LOP1CMPAX,70;否则,继续与70进行比较JBLOP2;小于70,则转LOP2CMPAX,80;否则,继续与80进行比较JBLOP3;小于80,则转LOP3CMPAX,90;否则,继续与90进行比较JBLOP4;小于90,则转LOP4JMPLOP5LOP1:MOVBX,[DI]INCBXMOV[DI],BX;对小于60的数据计数,并把其放在RES的第一个字节中JMPBEGIN;转到BEGINLOP2:MOVBX,[DI+2]INCBXMOV[DI+2],BX;对60-69的数据计数,并把其放在RES的第二个字节中JMPBEGIN;转到

7、BEGINLOP3:MOVBX,[DI+4]INCBXMOV[DI+4],BX;对70-79的数据计数,并把其放在RES的第三个字节中JMPBEGIN;转到BEGINLOP4:MOVBX,[DI+6]INCBXMOV[DI+6],BX;对80-89的数据计数,并把其放在RES的第四个字节中JMPBEGIN;转到BEGINLOP5:MOVBX,[DI+8]INCBXMOV[DI+8],BX;对90-99的数据计数,并把其放在RES的第五个字节中JMPBEGIN;转到BEGINOUTPUT:LEADX,L1;取字符串S

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

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

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