资源描述:
《实验三 循环程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理与应用实验三、循环程序设计实验重点:理解循环结构程序,调试该结构程序,数据分析实验难点:编写顺序、分支程序具体做的事情:*实验内容理解(包括实验目的)*了解循环结构程序、编写方法*上机实践熟悉汇编语言程序开发过程及调试方法*数据分析并记录*编写实验报告循环程序设计1、实验内容1)在一数组中(无符号数/有符号数两种情况)寻找最大数程序设计(最小值的程序如何?);在一数组(有符号数)中统计正、负、零数的个数程序设计(必做)。2)学生成绩分类统计程序设计(或学生成绩名次表程序设计)(选做)。注:学生成绩按一门功课分类统
2、计,20位同学,自拟20个如下范围的数据:60分以下(不含60),60~70(不含70),70~80,80~90,90~100,100。循环程序设计2、实验目的掌握顺序结构运算类指令使用,顺序结构运算类程序编写及调试方法,了解运算类指令对各状态标志位的影响及其测试方法;掌握分支程序结构、编程及调试方法。循环程序设计3、实验设备与仪器PC机、emu8086仿真软件。4、实验步骤a.检查实验设置外接电源,开启PC机。b.进入软件集成操作环境主界面,按NEW建立新文件,即可开始输入源程序。c.输入程序后,按Ctrl+S保存程序
3、(规定扩展名为*.asm源程序文件)。实验设备仿真软件使用循环程序设计d.对原程序进行汇编与链接,通过观察输出窗口的信息,确定对汇编程序的修改。有错误,进行修改,随即汇编与链接,直到无错误为止,形成*.exe可执行的文件。e.在调试界面中采用不同方式调试程序(采用单步、连续等运行方式,调试程序),通过“vars”功能,观察符号变量数据变化。查看????单元中的内容。实验设备仿真软件使用循环程序设计5、程序设计1)工作原理循环程序设计结构是重复执行同一程序段的结构,根据设计内容来决定选择其中的一种结构(Do-While结构
4、或While结构)。通过循环控制指令可以使程序达到反复执行的目的。数据分析并记录循环程序设计DATASEGMENT;无符号数VARDB22H,24H,0AH,23H,32H,41H,7FH,80H,21HMAXDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,0MOVCX,9MOVBX,OFFSETVARBBB:CMPAL,[BX]JNCBIGER;也可用JA(大于)或JB(小于)MOVAL,[BX]BIGER:INCBXLO
5、OPBBBMOVMAX,ALMOVAH,4CHINT21HCODEENDSENDSTART上机操作开发汇编程序DATASEGMENT;有符号数VARDW8,-1,32766,0,100MAXDW?LENDW5DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;定义用户数据段LEASI,VAR;设置FINDMAX的入口参数MOVCX,LENDECCXCALLFINDMAX;调用子程序,找出字数组的最大数MOVMAX,AXMOVAH,4CH;正常终
6、止程序INT21HFINDMAXPROCMOVAX,[SI];把第1个数取到AX中NEXT:CMPAX,[SI+2];与数组中的下1个数比较JGSKIPMOVAX,[SI+2;使AX中保存两数中较大的数上机操作开发汇编程序SKIP:ADDSI,2;取下1个单元的地址值LOOPNEXT;循环执行,直到CX=0,退出循环RET;返回主程序FINDMAXENDPCODEENDSENDSTART注:若找最小数将JGSKIP改为JLSKIP。上机操作开发汇编程序上机操作开发汇编程序上机操作开发汇编程序DATASEGMENTGRAD
7、EDW56,69,84,82,73,88,99,63,100,80S5DW0S6DW0S7DW0S8DW0S9DW0S10DW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,10MOVBX,OFFSETGRADECOMPARE:MOVAX,[BX]CMPAX,60JLFIVECMPAX,70JLSIXCMPAX,80上机操作开发汇编程序JLSEVENCMPAX,90JLEIGHTCMPAX,100JLNINEINCS10JMPC
8、HANGE-ADDRNINE:INCS9JMPCHANGE-ADDREIGHT:INCS8JMPCHANGE-ADDRSEVEN:INCS7JMPCHANGE-ADDRSIX:INCS6JMPCHANGE-ADDRFIVE:INCS5CHANGE-ADDR:ADDBX,2LOOPCOMPAREWAIT:JMPWAIT