第3章80C51单片机指令系统详解.ppt
文本预览下载声明
第3章 80C51单片机指令系统 3.1 单片机指令系统概述 2、MCS-51单片机指令格式 3、指令格式中符号意义说明 3.2 80C51单片机指令寻址方式 3.3 80C51单片机指令分类介绍 3.3.1 数据传送类指令 (3)外部RAM数据传送指令组 (4)程序存储器数据传送指令组 (5)数据交换指令组 (6)堆栈操作指令组 3.3.2 算术运算类指令 (1)加法指令组 (2)带进位加法指令组 (3)带减位加法指令组 (4)加1指令组 (5)减1指令组 (6)乘除指令组 (7)十进制调整指令 DA A 3.3.3 逻辑运算及移位类指令 3.3.4 控制转移类指令 (1)无条件转移指令组 (2)条件转移指令组 (3)子程序调用和返回指令组 3.3.5 位操作类指令 寄存器寻址示意图 直接寻址示意图 寄存器间接寻址示意图 立即寻址示意图 位寻址示意图 2位(字节)BCD码加法运算出错情况一览表 c)减1条件转移指令 : 1)寄存器减1条件转移指令: DJNZ Rn, rel 功能:Rn←(Rn)-1(n=0~1): 若(Rn)≠0,则程序转移执行,目的地址(PC)=(PC) +2+rel; 若(Rn)=0,则程序顺序执行,目的地址(PC)=(PC) +2; 2)寄存器减1条件转移指令: DJNZ direct, rel 功能:direct←(direct)-1: 若(direct)≠0,则程序转移执行,目的地址(PC)= (PC)+3+rel; 若(direct)=0,则程序顺序执行,目的地址(PC)= (PC)+3; 注意:以上两条指令常用于循环结构程序,以判断循环是否结束。 子程序结构是一种非常重要的程序结构。在一个程序中经常遇到反复多次某程序段的情况,如果重复书写这个程序段,会使程序变得冗长而杂乱。对此,可采用子程序结构,即把重复的程序段编写为一个子程序,通过主程序调用而使用它。这样不但减少了编程工作量,而且也缩短了程序的长度。 调用和返回构成了子程序调用的完整过程。为了实现这一过程,必须有子程序调用指令和返回指令。调用指令在主程序中使用,而返回指令则应该是子程序的最后一条指令。执行完这条指令后,程序返回主程序断点处继续执行。 a)长调用指令 LCALL addr16; 功能:按指令给定16位目的地址(即子程序首地址)进行子 程序调用; 操作内容:①形成断点地址,PC←(PC)+3 ; ②保护断点(断点地址自动进栈) SP←(SP)+1,(SP)←(PC)7~0 SP←(SP)+1,(SP)←(PC)15~8 ③目的地址,PC←adrr16 注意:1)转移范围:程序存储器64KB空间; 2)在实际应用中,指令中的addr16都是用子程序的 名称来代替的,不一定写出它们的具体地址。 b)返回指令 RET;子程序返回指令 功能:子程序返回; 操作内容:恢复断点(断点地址自动出栈) PC15~8←((SP)), SP←(SP)-1; PC7~0 ←((SP)), SP←(SP)-1; RETI:中断服务程序返回指令 功能:中断服务程序返回; 操作内容:恢复断点(断点地址自动出栈) PC15~8←((SP)), SP←(SP)-1; PC7~0 ←((SP)), SP←(SP)-1; c)空操作指令 NOP;PC←(PC)+1 功能:不执行任何操作,常用于产生一个机器周期的时间延迟。 例: MOV SP, #60H;堆栈栈底设置为60H (1000H)START:LCALL MIR;调用名称为MIR的子程序 (1003H) QQ:CLR A; (1004H) ………… (2000H) MIR: ………… RET 位处理就是以位(bit)为单位进行的运算和操作。 a)指令数目:17条; b)指令功能:实现位传送,位逻辑运算,位控制程序转移等; c)助记符
显示全部