与操作指令.ppt
文本预览下载声明
3.3.6 控制转移指令—无条件转移 (1) 转移指令 AJMP addr11 转移范围:含有下一条指令首地址的同一个2KB范围,即高5位地址相同; * 3.3.6 控制转移指令——空操作指令 单元地址 标号 机器码(H) 主程序 注释 2000H TIME: 7A FA MOV R2,#FAH ; 2002H LOOP1: 7B FA MOV R3,#FAH ; 2004H LOOP2 00 NOP ; 2005H 00 NOP ; 2006H 00 NOP ; 2007H 00 NOP ; 2008H 00 NOP ; 2009H 00 NOP ; 200AH DB F8 DJNZ R3,LOOP2 ; 200CH DA F4 DJNZ R2,LOOP1 ; 200EH 22 RET ; * 本章内容结束! 谢谢大家! * * 3.3.6 控制转移指令—无条件转移 (2)长转移指令 LJMP addr16 说明: 转移范围:64KB全程序空间任何单元 CPU的执行过程 addr16 ? ( PC ) 使用方式: LJMP LABEL 例:长转移指令应用 … ; INC A ; …; LJMP LOOP1 ; 无条件转移到LOOP1执行程序 * 3.3.6 控制转移指令—无条件转移 (3)短转移指令 SJMP rel rel为指令代码中的转移范围(相对量): -128~+127;对应rel值为:00H~7FH(0~+127)、80H~FFH( - 128~ - 1); 用法: SJMP LABEL 例: SJMP NEXT CPU的执行过程 (PC)+2 ? (PC), (PC)+rel ? (PC) * 3.3.6 控制转移指令—无条件转移 (4)间接转移指令 JMP @A+DPTR ;(A)+(DPTR) ? (PC) 说明: (1)具有多分支转移功能,即散转功能,又叫散转指令; (2)转移范围:是以DPTR为首地址的256B。 例: 根据累加器A中的命令键键值,设计命令键操作程序入口跳转表。 * 3.3.6 控制转移指令—无条件转移 CLR C RLC A MOV DPTR,#JPTAB JMP @A+DPTR JPTAB: AJMP CCS0 AJMP CCS1 AJMP CCS2 : * 3.3.6 控制转移指令—条件转移 条件转移指令相当于高级语言的“ IF 条件 THEN 标号”语句 (一)以 累加器A内容为判别条件的转移指令 (1)判(A)为零转移 JZ rel ; (PC)+2??(PC) 当(A)=0时,(PC)+rel??(PC)转移; 当(A)≠0时,顺序执行。 用法: JZ LABEL (PC)+2 ?(PC) (A)=0? (PC)+rel ?(PC) 下一条指令 目标地址 CPU执行过程 Y N (A)=0? 下一条指令 LABEL N Y 二、 条件转移指令 * 3.3.6 控制转移指令—条件转移 (2)判(A)不为零转移 JNZ rel ; (PC)+2??(PC) 当(A) ≠ 0时,(PC)+rel??(PC)转移; 当(A) = 0时,顺序执行。 用法: JNZ LABEL (PC)+2 ?(PC) (A)?0? (PC)+rel ?(PC) 下一条指令 目标地址 CPU执行过程 Y N (A) ? 0? 下一条指令 LABEL Y N * 3.3.6 控制转移指令—条件转移 例:设无符号数存放于20H单元,存放于21H单元, 比较两个数、是否相等,若相等置标志位F0位1,否则,F0
显示全部