第3章单片机的指令系统课件.ppt
文本预览下载声明
* 单片机原理及应用技术教材编写组 * 例 下列程序段将在P1.0引脚上输出方波。 MOV R7,#10 ;设定要输出的方波数,共5个周期 LOOP: CPL P1.0 ;实现P1.0电平改变,该指令的执行时间为1个机器周期 DJNZ R7,LOOP ;未到设定输出数转回LOOP,该指令的执行时间为2个机器周期 DONE: * 单片机原理及应用技术教材编写组 * 3.6.3 调子指令(4条) (1)绝对调用(2KB地址内)指令 ACALL addr11 双字节指令。机器码的第一字节其高半字节为奇数1~F,有8种变化,决定于11位地址中的高3位,其低半字节恒为l;第二字节为地址的低8位。 该指令可在2KB地址范围内寻址,以调用于程序。与AJMP指令一样:在2KB范围内,页数决定于地址的高3位,页内地址决定于地址的低8位。addr11是子程序的入口地址(首址)。 * 单片机原理及应用技术教材编写组 * 地址高3位、页数、机器码第一字节高半字节这三者对应的关系: * 单片机原理及应用技术教材编写组 * 指令执行的操作为: (PC)←(PC)+2 (SP)←(SP)+1 ((SP))←(PC7~0) (SP)←(SP)+1 ((SP))←(PC15~8) (PC10~0)← addr11 将PC值加2后的新值进栈,即保存断点的功能。PC的低8位先进栈,PC的高8位后进栈;高8位与低8位相邻,后进栈的其地址值大1;有新的内容进栈前,饯针先自动加1。第六条仍用于使程序的执行顺序转移,使转到子程序的入口地址addrll,真正完成调子的任务。 * 单片机原理及应用技术教材编写组 * (2)长调子(64KB地址内)指令 LCALL addr 16 三字节指令。机器码的第一字节为12H;第二字节为地址的高8位;第三字节位地址的低8位。 指令子执行的操作为; (PC)←(PC)+2 (SP)←(SP)+1 ((SP))←(PC7~0) (SP)←(SP)+1 ((SP))←(PC15~8) (PC15~0)←addr16 本指令可在全64KB地址范围内调用子程序,但比ACALL指令多占1个字节,多用对节省存空间不利 * 单片机原理及应用技术教材编写组 * (3)返主指令 RET 单字节指令。机器码为22H。 指令执行的操作为: (PC15~8)←((SP)) (SP)←(SP)-1 (PC7~0) ←((SP)) (SP)←(SP)-1 调用子程序后必须返回主程序,因此每种子程序的最后一条指令必然是返主指令RET。 * 单片机原理及应用技术教材编写组 * (4)中断返主指令 RETI 单字节指令。机器码为32H。 中断服务程序的性质也是一种子程序。计算机响应中断、继而程序转移到中断服务程序。继续执行可以理解为一种特殊的调子过程,因此也有返回主程序的问题。中断服务程序的最后一条指令也一定是返主指令,但应是中断返主指令RETI。 RETI与RET的操作表达式完全一致,而前一指令在恢复断点前,将先清除“优先级激活”触发器(见第二章第七节中的三),使同级或低级的中断申请不会再被阻断。 * 单片机原理及应用技术教材编写组 * 例 (SP)=30H,标号为SUB的子程序在程序存储器中的真实地址为0345H,现将执行ACALL SUB指令,该指令的首址为0123H,问指令执行的结果与指令的机器码。 指令执行后:(SP)=32H;片内RAM 31H、32H单元的内容分别为25H和01H;(PC)=0345H。 指令的机器码为71H、45H。 例 问上例在该子程序最后、执行RET指令的结果。 RET指令执行后:(PC)=0125H,程序将自0125H单元开始.往下继续执行;(SP)=30H。 * 单片机原理及应用技术教材编写组 * 3.7 位操作类指令 MCS-51系列单片机有很强的位操作功能,很适宜用于位处理任务重、需要解决大量逻辑控制问题的场合。 位操作类指令可为位传送、位逻辑操作、位转移等。 位传送指令的执行时间为1个机器周期,位条件转移指令的执行时间为2个机器周期。 在位逻辑操作指令中,执行取反、清零、置1操作的,用1个机器周期;执行与、或操作的,用2个机器周期。 * 单片机原理及应用技术教材编写组 * 3.7.1 位传送指令 (1)某直接寻址位内容送进位位指令 MOV C ,bit 双字节指令。机器码的第一字节为A2H;第二字节为直接寻址的位地址。 (2)进位位内容送某直接寻址位指令 MOV bit, C 双字节指令。机器码的第一字节为92H;第二字节为直接寻址的位地址。 * 单片机原理及应用技术教材编写组 * ◆在指
显示全部