第十一讲 控制转移类指令 教学方法: 讲授法 教学目的: 1、了解控制转移类指令的分类 2、掌握条件转移指令的特点及应用 教学重点: 条件转移指令的特点及应用 教学难点: 条件转移指令的特点及应用 教学环节 组织教学:(2分钟)检查学生人数,强调作业要求。 复习提问:1、控制转移指令是如何分类的? 2、无条件转移指令、调用指令分是哪几个? 引入新课: 二、条件转移指令 实现按照一定条件决定转移的方向。分三类。 1、判零转移 JZ rel JNZ rel JZ rel ;若(A)= 0 ,则转移,否则顺序执行。 JNZ rel ; 若(A)≠ 0,则转移,否则顺序执行。 转移目的地址 = (PC)+ 2 + rel 不影响任何标志位。 例1、将外RAM的一个数据块(首地址为DATA1)传送到内部数据RAM(首地址为DATA2),遇到传送的数据为零时停止传送,试编程。 解: MOV R0,#DATA2 MOV DPTR,#DATA1 LOOP1: MOVX A,@DPTR JZ LOOP2 MOV @R0,A INC R0 INC DPTR SJMP LOOP1 LOOP2: SJMP LOOP2 2、比较转移指令 功能:比较二个字节中的值,若不等,则转移。 CINE A,#data,rel CJNE A,direct,rel CJNE @Ri,#data,rel CJNE Rn,#data,rel 该类指令具有比较和判断双重功能,比较的本质是做减法运算,用第一操作数内容减去第二操作数内容,但差值不回存。 转移目的地址 = (PC)+ 3 + rel 若第一操作数内容小于第二操作数内容,则(C)= 1,否则(C)= 0。 该类指令可产生三分支程序: 即,相等分支;大于分支;小于分支。 例2、设P1口的P1.0 ~ P1.3为准备就绪信号输入端,当该四位为全1时,说明各项工作已准备好,单片机可顺序执行,否则,循环等待。 解: MOV A,P1 ANL A,#0FH CJNE A,#0FH,WAIT ;P1.0 ~ P1.3不为全1时,返回WAIT MOV A,R2 ······ 3、循环转移指令 DJNZ Rn,rel ;(二字节指令) DINZ direct,rel ;(三字节指令) 本指令也为双功能指令,即减1操作和判断转移操作。 第一操作数内容减1后,若差值不为零,则转移;否则顺序执行。 转移目的地址 = (PC)+ 2或3 + rel 例3、将8031内部RAM的40H ~ 4FH单元置初值 #A0H ~ #AFH。 解: MOV R0,#40H MOV R2,#10H MOV A,#0A0H LOOP: MOV @R0,A INC R0 INC A DJNZ R2,LOOP ······ 小结: 1、无条件转移指令共有几条? 2、CJNE指令与DJNZ指令有何区别? 作业:作业:P96 3.6 3.7 版书设计 一、判零转移 1、…. 2、……. 3、 二、比较转移指令 1、…….. 2、……..   三、循环转移指令 1、…….. 2、…….. 小结: 1、…….. 2、……. .作业: