单片机技术 2.5控制转移指令 2.5控制转移指令.pptVIP

  • 19
  • 0
  • 约5.87千字
  • 约 28页
  • 2021-03-03 发布于北京
  • 举报

单片机技术 2.5控制转移指令 2.5控制转移指令.ppt

国家开放大学 / 2.5 控制转移指令 通过修改程序计数器PC值,实现程序跳转的指令 1,无条件转移指令 2,条件转移指令 3,子程序调用和返回 4,空操作指令 71-* 2.5.1.无条件转移指令(注意:改变地址的方式) LJMP addr16 长转移指令 指令包含16位绝对地址, 寻址范围65535; AJMP addr11 绝对转移。 指令包含11位绝对地址, 寻址范围2K; SJMP rel 短转移。 转移范围(+127~-128) JMP @A+DPTR 变址转移。 寻址范围65535。 02H addr15~8 addr7~0 a10~8 00001 a7 ~a0 80H r e l 73H LJMP指令 (三字节) AJMP指令 (双字节) SJMP指令 (双字节) JMP指令 (单字节) 71-* 1.长转移指令(三字节双周期指令) LJMP addr16 ;addr16→PC 指令执行时,将指令码中的addr16送入PC中,使程序无 条件的转向addr16所指向的新地址执行程序。 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 操作码 02H a15 ~ a0(16位绝对地址) LJMP 2000H 指令 PC程序计数器 指令的操作 71-* 【解】:因为单片机上电时,PC=0000H,所以在0000H单元存 放一条 LJMP 0A080H 的指令即可。 LJMP A0H 80H ROM 0000H 0001H 0002H 0003H 【举例】:已知某单片机的监控程序地址为A080H,试问用 什么方法使单片机开机后自动的转向该监控程序? 71-* 1.在ROM的6个特殊单元中,实际上每个单元都要存一个LJMP add16的长转移指令。 2.当上电或者响应某一中断时CPU由硬件自动进入对应的6个单元入口之一,再由LJMP 指令实现真正的转移。 3.编程时可以使用符号地址代替16位的绝对地址。 (上电启动地址) (INT0中断入口) (T0中断入口) (INT1中断入口) (T1中断入口) (串口中断入口) 0000H 0003H 000BH 0013H 001BH 0023H 71-* 程序举例: ORG 0000H LJMP 0100H ;上电/复位入口地址 ORG 0003H LJMP INT_0 ;INT0中断入口地址 ORG 0013H LJMP TIMER_0 ;T0溢出中断入口地址 : ORG 0100H START: MOV A,#00H ;主程序 : ORG 0200H INT_0: PUSH PSW ;INT0中断服务程序 : ORG 0300H TIMER_0: PUSH PSW ;T0中断服务程序 : : 71-* 2、绝对转移指令(双字节、双周期指令) AJMP addr11;addr11→PC 10~0, PC 15~11不变 将AJMP指令中的11位转移地址替换掉原来PC中16位地址中的低11位地址。 指令中的11位地址,确定了地址的转移范围在2K以内,所以AJMP也称“页内转移”指令。 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 X X X X X 1 0 1 1 0 1 0 0 1 0 1 A10 A9 A8 操作码 A7 ~ A0 AJMP指令 PC程序计数器 11位页内地址 71-* 1. 11位绝对地址在编程时可以使用符号地址代替。 2. MCS-51的ROM系统是以2K为一页来划分程序存储器:对于4K的片内ROM存储器可以分为2页; 片外64K的ROM可以分为32页。 3. 在执行AJMP指令时,PC中的原高5位决定了ROM中的页地址;低11位地址用来选择页内地址。 4. 在一般情况下,AJMP指令应当与目标地址在同一页内。即目标地址应当与AJMP指令取出后的

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档