- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2.条件转移指令
—无符号数的比较(例)cmpax,bx ;比较ax和bxjaenext ;若ax≥bx,转移xchgax,bx ;若ax<bx,交换next: ...结果:AX保存较大的无符号数2.条件转移指令
—有符号数的比较(例)cmpax,bx ;比较ax和bxjgenext ;若ax≥bx,转移xchgax,bx ;若ax<bx,交换next: ...01结果:AX保存较大的有符号数022.条件转移指令
—计数器CX为0转移CX寄存器通常在程序中用做计数器JCXZ指令用来判断计数是否为0JCXZlabel;CX=0,发生转移:IP←IP+8位位移量;CX≠0,顺序执行5.2循环程序设计*010203循环程序的结构形式循环程序设计多重循环程序设计一、循环程序的结构形式*结束01初始化02循环的初始状态03循环体04循环的工作部分及修改部分05计数控制循环条件控制循环06修改部分07控制条件08Y09N10先循环,后判断11一、循环程序的结构形式*结束初始化循环的初始状态循环体循环的工作部分及修改部分计数控制循环条件控制循环修改部分控制条件YN先判断,后循环二、循环程序设计(例)*例5.1试编写一程序把BX寄存器内的2进制数用16进制数的形式在屏幕上显示出来。分析:1、四位2进制数对应一位16进制数;2、BX从左到右四位为一组分别显示;3、0-9的ASCII码为30-39H,A-F的SCII码为41-46H;(0-9加30H)(A-F加37H)4、屏幕显示:(DL)中放入要显示的字符的ASCII码;MOVAH,02HINT21H开始初始化循环计数值(4次)BX循环左移4位取出BX的低4位显示一个字符循环计数值-1循环计数值=0?结束YN转换为ASCII码程序见P162-163rotate:例5.2在ADDR单元存放着数Y的地址,试编制一程序把Y中1的个数存入COUNT单元中*开始1的个数计数器←0循环次数计数器CX←16Y左移一次CF=11的个数计数器+1CX←CX-1=0COUNT←1的个数计数器结束NYNYY=0NY例5.2DATA SEGMENTY DW1234HADDR DWYCOUNT DB?DATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATASTART: MOVAX,DATA MOVDS,AX MOVDL,0 MOVBX,ADDR MOVAX,[BX] MOVCX,16REPEAT: SHLAX,1 JNCNEXT INCDL NEXT: LOOPREPEAT EXIT0: MOVCOUNT,DL MOVAH,4CH INT21H CODE ENDS ENDSTARTCMPAX,0JZEXIT0例5.2JMPREPEAT*第五章循环与分支程序设计§5.1循环与转移指令§5.2循环程序设计§5.3分支程序设计*编写汇编语言程序步骤1分析题意,确定算法2根据算法,画出程序流程图3根据框图编写程序4上机调试程序5.1循环与转移指令*循环控制指令转移指令控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变一、循环控制指令*8086指令系统的循环控制指令均为二字节指令一字节为转移的相对位移量(8位带符号的二进制数)IP←IP+相对位移量隐含使用CX作为循环计数器程序中的某段需反复执行若干次时,用循环来实现小范围转移一、循环控制指令*等于时循环不等于时循环;CX←CX-1,CX≠0,循环到标号labelLOOPlabel ;CX←CX-1,CX≠0且ZF=1,循环到标号labelLOOPNE/NZlabel ;CX←CX-1,CX≠0且ZF=0,循环到标号labelLOOPE/LOOPZlabel 一、循环控制指令(例)* movcx,count ;设置循环
文档评论(0)