第十一讲 控制转移类指令
教学方法: 讲授法
教学目的:
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、…….
.作业: