第3章7控制转移指令ppt课件.pptVIP

  • 3
  • 0
  • 约7.25千字
  • 约 71页
  • 2018-06-05 发布于贵州
  • 举报
第3章7控制转移指令ppt课件

§ 3.2.5 控制转移指令(P130) 注意: 1、转移指令 1)、JMP无条件转移指令 (1)、段内直接短转移 注意: 例: (2)、段内直接近转移 注意: (3)、段内间接转移 例: (4)、段间直接转移 (5)、段间间接转移 例: 2、条件转移指令 1)、比较转移指令 2)、判位转移指令 3)、判CX转移指令 2、循环控制指令 3、过程( 子程序 )调用指令 1)、 CALL调用 (1)、 段内直接调用 (2)、 段内间接调用: (3)、 段间直接调用 (4)、段间间接调用: 2)、 RET返回 4、中断和中断返回指令 分界 只允许段内直接短转移方式,跳转范围-128~127 都用CX作为循环计数器 循环指令说明: LOOP退出循环条件是(CX)=0 LOOPZ和LOOPNZ提供了提前结束循环的可能。 ▲ 在串中查找字符,查到了,退出,    用LOOPNZ,不相等时继续查找。 ▲比较两串时,当有字符不等,退出,两字符串不等。      可用LOOPZ,当相等时继续比较。 ▲执行完 LOOPNZ或LOOPZ后,判断ZF的值 对查找字符,ZF=1,说明找到;否则没有找到。 对串比较,ZF=1, 说明两串相等;否则不等。 LOOP 相当于: DEC CX JNZ 目的地址标号 例:在数据段DATA开始的30个单元中存放着某班30位同学的某门考试成绩,求总分和平均成绩,结果分别保存在DX,AL中。 修改偏址BX CX 成绩数N DS:BX 首地址 (CX) (CX)-1 求平均值 (CX) = 0 ? Y N 结束 清零DX 成绩累加 MOV DX,0 LEA SI,DATA MOV CX,30 NEXT:ADD DL,BYTE PTR [SI] ADC DH,0 INC SI LOOP NEXT MOV CL,30 MOV AX,DX DIV CL 例: 在string字符串中查找空格字符,串长度为N。 修改偏址BX Y N AL 关键字 CX 串长度N DS:BX 串首址 判[BX]是关键字? (CX) (CX)-1 找到处理 未找到处理 (CX) = 0 ? Y N 结束出口 MOV CX, N MOV AX, SEG string MOV DS, AX LEA BX, string MOV AL,20H next: CMP AL,[BX] JZ find INC BX DEC CX JNZ next 未找到处理 JMP exit find: 找到处理 exit: 结束出口 用条件转移: JZ MOV CX, N MOV AX, SEG string MOV DS, AX LEA BX, string MOV AL,20H next: CMP AL, [BX] PUSH F INC BX POPF LOOPNZ next JZ find 未找到处理 JMP exit find: 找到处理 exit: 结束出口 用循环指令: LOOPNZ 思考: ① 去掉指令JMP exit ,程序执行结果会怎样? ② PUSH F、POPF可否去掉?若要去掉,程序如何修改? ③ 执行完LOOPNZ后,可否根据CX=0来判断查找结果? CX=0,即说明没找到,对吗? 子程序—具有独立功能的独立程序模块。 子程序(过程)定义格式: 子程序名 PROC 类型 …… 子程序名 ENDP    子程序调用和返回

文档评论(0)

1亿VIP精品文档

相关文档