第五章-循环与分支程序设计课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DATA SEGMENT Y DW 1234H ADDR DW Y COUNT DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,0 MOV BX,ADDR MOV AX,[BX] MOV CX,16 REPEAT: SHL AX,1 JNC NEXT INC DL NEXT: LOOP REPEAT EXIT0: MOV COUNT,DL ADD DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START CMP AX,0 JZ EXIT0 例5.2 JMP REPEAT 例5.4 将正数N插入一个已升序排列的字数组的正确位置。该数组的首地址和末地址分别为ARRAY_ HEAD 和ARRAY_ END,其中所有的数均为正数。 解法一: 从数组的尾部开始比较 N较大,则在比较对象后插入,结束循环 N较小,则把比较对象及其后元素后移一个字 循环结束的控制: 执行插入操作后结束循环 若N比所有元素都小,扫描整个数组后仍无法结束循环,将-1加在数组前可解决该问题 23, 37, 49, 52 32 END HEAD -1, 23, 37, 49, 52 32, -1, 开始 (ARRAY_HEAD-2)←-1 初始化变址寄存器SI 将N放在K的后面 K=N 修改地址 K后移一个字单元 结束 Y N 例5.4 DATAREA SEGMENT X DW ? ARRAY_HEAD DW 3,5,15,23,37,49 ARRAY_END DW 105 N DW 32 DATAREA ENDS PROGRAM SEGMENT MAIN PROC FAR ASSUME CS:PROGRAM,DS:DATAREA START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATAREA MOV DS,AX MOV AX,N MOV ARRAY_HEAD-2,-1 MOV SI,0 COMP:CMP ARRAY_END[SI],AX JLE INSERT MOV BX,ARRAY_END[SI] MOV ARRAY_END[SI+2],BX SUB SI,2 JMP COMP INSERT: MOV ARRAY_END[SI+2],AX RET MAIN ENDP PROGRAM ENDS END START 例5.4 MOV BX,ARRAY_END[SI] CMP BX,AX JLE INSERT 一、循环控制指令(例) MOV CX,COUNT ;设置循环次数 MOV SI,OFFSET STRING XOR BX,BX ;BX清0,用于记录空格数 MOV AL,20H AGAIN: CMP AL,[SI] JNZ NEXT ;ZF=0,非空格,转移 INC BX ;ZF=1,是空格,个数加1 NEXT: INC SI LOOP AGAIN ;计数器减1,不为0继续循环 二、转移指令 无条件转移指令 条件转移指令 无条件转移指令 JMP label ;程序转向label标号指定的地址 NEAR FAR 只要执行无条件转移指令JMP,就使程序转到指定的目标地址处,从目标地址处开始执行那里的指令 JMP指令分成4种类型: ⑴ 段内转移、直接寻址 ⑵ 段内转移、间接寻址 ⑶ 段间转移、直接寻址 ⑷ 段间转移、间接寻址 目的地址与JMP属同一逻辑段,只修改IP值 从一个代码段转移到另一个代码段,CS和IP都会被修改 1. 无条件转移指令 —目标地址的寻址方式 直接寻址方式 转移地址象立即数一样,直接在指令的机器代码中,就是直接寻址方式 间接寻址方式 转移地址在寄存器或主存单元中,就是通过寄存器或存储器的间接寻址方式 用标号表达 用寄存器或存储器操作数表达 1. 无条件转移指令 —目标地址的范围:段内 段内转移——近转移(near) 在当前代码段64KB范围内转移 ( ±32KB范围) 不需要更改CS段基值,只要改变IP偏移地址 段内转移——短转移(short

文档评论(0)

liuxiaoyu99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档