您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编教程循环控制指令loop指令
1多分支结构程序设计P75例5.42循环结构程序设计:循环控制指令8086提供了三条专用的循环控制指令:LOOPlabel;CX≠0,循环;否则退出LOOPZ/LOOPElabel;CX≠0且ZF=1,循环;否则退出LOOPNZ/LOOPNElabel;CX≠0且ZF=0,循环;否则退出…CX←CX-1循环条件成立?YN示意图3循环控制指令(2)(end)程序举例:统计ES段中string字符串包含空格的个数,设字符串的长度为count字节,结果存入result单元。MOVCX,COUNTMOVSI,OFFSETSTRING;取偏移地址XORBX,BX;记录空格数目JCXZDONE;字符串长度为0,退出MOVAL,20H;空格的ASCII码AGAIN:CMPAL,ES:[SI]JNZNEXT;不是空格,不计数INCBX;是空格,计数NEXT:INCSI;调整指针,指向下一个LOOPAGAIN;字符个数减一,不为0,继续循环DONE:MOVRESULT,BX;…42.5节目录1---6(串操作)串操作指令“串”:在存储器中连续排列的一组数据,称为数据串;对数据串进行操作的指令称为串操作指令。1.串传送指令MOVS2.串存储指令STOS3.串读取指令LODS4.串比较指令CMPS5.串扫描指令SCAS6.重复前缀指令REP5串操作(1)传送串传送指令:MOVSMOVSB;字节传送:ES:[DI]←DS:[SI];SI←SI±1,DI←DI±1MOVSW;字传送:ES:[DI]←DS:[SI];SI←SI±2,DI←DI±2注释:1)源数据串可以段跨越,目的串不可。2)DF=0,地址指针+1或+2,DF=1,指针-1或-2。3)一般不使用格式MOVS目的串名,源串名。4)不影响标志。6清除进位标志位CLCCF=0进位标志位置位STCCF=1进位标志位取反CMCCF取反清除方向标志CLDDF=0方向标志位置位STDDF=1清除中断标志CLIIF=0中断标志位置位STIIF=1标志位操作指令7串操作(2)movsi,offsetsourcemovdi,offsetdestmovcx,100cldLoopm:movsbdeccxjnzloopmloopm:movsblooploopmmovcx,50cldloopm:movsw例:将source指示的100个字节传送到本段dest指示的区域。8串操作(3)传送方向:1)可正向,也可反向。2)只能正向。3)只能反向。低地址高地址源数据串目的数据串9上机实验:P925.45.6
本文标题:汇编教程循环控制指令loop指令
链接地址:https://www.777doc.com/doc-2368311 .html