循环程序举例.docx

上传人:p** 文档编号:1250526 上传时间:2024-12-18 格式:DOCX 页数:8 大小:24.31KB
下载 相关 举报
循环程序举例.docx_第1页
第1页 / 共8页
循环程序举例.docx_第2页
第2页 / 共8页
循环程序举例.docx_第3页
第3页 / 共8页
循环程序举例.docx_第4页
第4页 / 共8页
循环程序举例.docx_第5页
第5页 / 共8页
循环程序举例.docx_第6页
第6页 / 共8页
循环程序举例.docx_第7页
第7页 / 共8页
循环程序举例.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
资源描述

《循环程序举例.docx》由会员分享,可在线阅读,更多相关《循环程序举例.docx(8页珍藏版)》请在第壹文秘上搜索。

1、循环程序举例例4.3.1已知9个数字,找出第一个不能够被3整除的数,并且显示其在数列中的位置设计思路:逐个推断每一个数是否能被3整除,假如不能被3整除,愉出其所在位置,结束;否则接着推断下一个。本程序中当一个数除以3余数不为O时ZF=O,遇1.OOPZ指令跳出循环1.OOPZ实例源程序如下:NAMEEX9-8DATASEGMENTARRAYDB0,0,0,3,0,0,4,34,25,30COUNTIEQUS-OFFSETARRAYDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODEBEGIN:MOVAX,DATAMOVDS,AXMOVCX,COUNTMOVDI1OF

2、FFFH;-I=DINEXT:INCDIMOVA1.1.,0MOVA1.,ARRAYDIMOVBH,3D1.VBHCMPAH,01.OOPZNEXTJNEOKENTRYMOVD1.,N;没找到JMPDISP1.AY;显示输出一个零OKENTRY:MOVDX,D1.;显示非零元素的下标(DI)ORD1.,3011DISP1.AY:MOVA1.1.,02HINT21HMOVAH,4CHINT21HCODEENDSENDBEGIN例4.3.2已知9个数字,找出第一个能够被3整除的数,并且显示其在数列中的位置设计思路:逐个推断每一个数是否能被3整除,假如能被3整除,输出其所在的位置,结束;否则接着推断

3、下一个程序说明:本程序中一个数除以3后,余数为O时置ZF=I,遇1.OOPNE时跳出循环1.OOPNE/1.OOPNZ实例源程序如下:NAMEEX9_9DTSEGMENTARRAYDB1,4,5,9,0,O,4,34,25,30COUNTEQU$-0FFSETARRAYDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODEBEGIN:MOVAX,DATAMOVDS,AXMOVCX,COUNTMOVDI,OFFFFH:-I=DINEXT:INCDIMOVAH,0MOV1.,RRYDIMOVBH,3DIVBHCMPAH,01.OOPNENEXTJEOKENTRYMOVD1

4、.,DISP1.AY;没找到;显示输出一个零JMPOKENTRY:MOVDX,DI;显示非零元素的下标(DI)INT21HORD1.30HDISP1.AY:MOVAH,02HMOVAH,4CHINT2IHCODEENDSENDBEGIN例4.3.3已知9个数字,找出全部不能够被3整除的数,并且显示其在数列中的位置。设计思路:找到不能被3整除的数后,接着推断下一个,而不是终止推断。JCXZ示例源程序如下:NAMEEX910DATASEGMENTARRAYDB1,2,0,3,O,O,4,34,25,30COUNTEQUS-OFFSETRRYDATAENDSCODESEGMENTASSUMEDS:D

5、ATA,CS:CODEBEGIN:MOVX,DATAAXMOVCX1COUNTMOVDI,OFFFFH;-I-DINEXT:INCDIMOVH,OMOVA1.,ARRAYDIMOVBH,DIVBHCMPH,JENOENTRYOKENTRY:MOVDX,DIORD1.,30HDISP1.AY:MOVH,02HINT2IHMOVD1.,INT21HNOENTRY:DECCXJCXZEXITJMPNEXTEXIT:MOVH,4CHINT21HCODEENDSENDBEGIN例4.3.4编程序计算S=1+2+3+4+100,并且以十进制形式输出结果源程序如下:NAMEEX911CODESEGMENTA

6、SSUMECS:CODESTART:MOVBX,1MOVX,OMOVCX,1001.:DDX,BXINCBX1.oOP1.MOVCX,AX将结果进行二化十输出MOVD1.,1.I:CMPCX,100O100O与CX比较JNAE1.2INCD1.SUBCX,100OJMP1.1.1.2:ORD1.,30HMOVH,02HINT21HMoVD1.01.3:CMPex,100:100与C)(比较JNE1.4INCD1.SUBCX,100JMP1.31.4:ORD1.,30HMOVAH,02HINT2IHMOVD1.01.5:CMPCX,10;10与CX比较JNE1.6INCD1.SUBCX,10JM

7、P1.51.6:ORD1.,30HMOVH,02HINT21HMOVD1.,C1.ORD1.,30HMOVAH,02HINT21HMoVAH,4CHINT21HCODEENDSENDSTART例4.3.5题目:输入39之间的一个数n,输出一个由*组成的三角形源程序如下:.MODE1.SMA1.1.STACK200H.CODEBEGIN:MOVAH11;读入一个字符INT21HCMPA1.,33H;非09重新输入JBBEGINCMP1.,39HJBEGINSUBA1.,30H;ASCII转二进制数MOVC1.A1.;循环次数送C1.MOVCH,0CU置OMOVAH,2MOVD1.,ODH;输出回

8、车、换行INT21HMOV)1.,OAHINT21H1.I:PUSHCX;外层循环次数压栈爱护,同时CX作为新的内层循环次数1.2:MOVD1.,*;输出n个*MOVAH,2INT2IH!.OOP1.2MOVD1.,ODH;输出回车、换行INT21HMOVD1.,OHINT2IHPOPCX;回复外层循环次数1.OoP1.1.;外层循环次数减1,不为0转1.1.MOVH,4CH;为0结束INT21HENDBEGIN例4.3.6题目:输入39之间的一个数n,输出一个由*组成的口字形源程序如下:.MODE1.SMA1.1.STACK200H.CODEBEGIN:MOVAH,1;读入39数字符号INT

9、21HCMP1.,33H:非39重新输入JBBEGINCMPA1.39HJABEGINSUBA1.,30H;是39,n换成2进制数MOVC1.,1.;n送C1.MOVCH,0;0送CH,循环次数在CXMOVBX,CX;n送BXMOVAH,2;输出回车、换行,使输出到下一行MOVD1.,ODHINT21HMOVD1.,OAHINT21H1.3:MOVD1.,*;输出上边框n个*MOVH,2INT21H1.OOP1.3MOVD1.,ODH;输出回车、换行INT21HMOVD1.,OAHINT21HMOVCX,BX;取n到CXSUBCX,2;n-2送CX,作为中间n-2行的循环计数1.I:PUSHC

10、X;起先除第1行和最终一行外,中间n-2行循环计数,;因内层循环也用CX计数,故压栈爱护外层循环计数MOVD1.,;输出中间行最左边的*MOVAH,2INT21HMOVCX,BXSUBCX,2;中间行每行n-2个*的内层循环计数1.2:MOVD1.,MOVH,2INT2IH1.OOP1.2;内层循环输出n-2个*MOVD1.,MOVAH12INT21HMOVD1.1ODH;输出中间行的回车、换行INT21HMOVD1.,OHINT21HPOPCX;曳原中间行外层循环计数1.OOP1.1.;中间行不够n-2转1.1.输出下一行,否则依次执行MOVCXjBX;起先输出下边框的n个*,方法同上边框1

11、.4:MOVD1.,*MOVAH,2INT21H1.OOP1.4MOVD1.,ODHINT21HMOVD1.,OHINT21HMOVAH,4CH:结束INT2IHENDBEGIN例4.3.6题目:5阶方阵转置,编出将矩阵A转置的程序,转置后仍放在原处源程序如下:DATASEGMENTADW4050H,0003H,5678H,6400H,0009HDW0099H,0084H,9080H,4587H,0000HDW1045H,0000H,0001H,0008H,0007HDW1020H,4321H,5432H,6599H,1256HDW9000H,5608H,6578H,5000H,5432HDT

12、ENDSSTACKSEGMENTPARASTACKSTACK,STAPNDW20DUP(?)TOPEQU$-OFFSETSTPNSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,XMOVX,TOPMOVSP,XMOVCX,4MOVBX,01.OOP1.:PUSHCXMOVSI,2MOV)1,101.00P2:PUSHABX+SIPUSHBX+DIPOPBX+SIPOPBX+DIADDSI,2DDDI,OH1.OOP1.OOP2ADDBX,OCHPOPCX1.OOP

13、1.OOP1.MOVAH,4CHINT21HCODEENDSENDSTART例4.3.7编制程序把BX寄存器内的二进制数用十六进制的形式在屏幕上显示出来。例4.3.8在ADDR单元中存放着数丫的地址,编制程序把Y中1的个数存入COUNT单元中。例4.3.9在附加段中有一个首地址为1.IST的未经排序的字数组,在数组的第一个字中存放者该数组的长度,数组的首地址已存放的DI寄存器中。AX寄存器中存放着一个数。要求编程在数组中查找该数,假如找到该数则把它从数组中删除。例4.3.10编制程序将正数N插入一个已排序的字数组的正确位置。该数组的首地址和本地址分别为ARRAY_HEAD和ARRAY-END,其中全部数均为正数且已按递增的次序排列。例4.3.11逻辑尺。设有数组X和Y,X中有XI,X2,X10;Y中有Y1.,Y2,Y10,编制程序计算:Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7,Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10.结果存入Z数组中。例4.3.12有一个首地址为的N字数组,编制程序使该数组中的数根据从大到小的次序排列。例4.3.13在附加段中有一个字数组,其首地址已存放在DI寄存器中,在数组的第一个字中存放着该数组的长度。编制一个程序使该数组的数根据从小到大的次序排列整齐。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!