单片机程序转移控制类和其它控制类.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机程序转移控制类和其它控制类

Sunplus 16 位微控制器 程序转移和其它控制类 指令分类 SPCE061A 的指令总共只有41种,可分为四类: 数据传送类 算逻运算类(移位操作补充说明) 程序转移控制类 其它控制类 移位操作补充说明 逻辑左移(LSL) 逻辑右移(LSR) 循环左移(ROL) 循环右移(ROR) 算术右移(ASR) 逻辑左移(LSL)1 【格式】 Rd = Rs LSL n 【说明】 该指令对Rs进行n(可设为1~4)位逻辑左移,将Rs高n位移入SB寄存器,同时Rs的低n(1~4)位用0补足,结果送Rd寄存器。 逻辑左移(LSL)2 【举例】0xF00F逻辑左移3位。 寄存器移位前的状态为: 寄存器移位后的状态为: 逻辑右移(LSR) 【格式】 Rd = Rs LSR n 【说明】 该指令对Rs进行n(可设为1~4)位逻辑右移,将Rs低n位移入SB寄存器同时Rs的高n(1~4)位用0补足,结果送Rd寄存器。 循环左移(ROL)1 【格式】 Rd = Rs ROL n 【说明】 该指令对Rs进行n(可设为1~4)位循环左移,将Rs的高n位移入S寄存器,同时移动SB寄存器的高n位移入Rs的低n位,结果送Rd寄存器。 循环左移(ROL)2 【举例】0x0010循环左移1位。 移位前的各位状态如下: 寄存器移位后的状态为: 循环右移(ROR) 【格式】 Rd = Rs ROR n 【说明】 该指令对Rs进行n(可设为1~4)位循环右移,将Rs的低n位移入SB寄存器,同时移动SB寄存器的低n位移入Rs的高n位,结果送Rd寄存器。 算术右移(ASR)1 【格式】 Rd = Rs ASR n 【说明】 该指令将Rs算术右移n(可设为1~4)位,将Rs的低n位移入SB寄存器,并对最高有效位进行符号扩展,结果送Rd寄存器。该指令适合有符号数的移位操作。 算术右移(ASR)2 【举例】 0xF111算术右移3位。 移位前的各位状态如下: 移位后的各位状态如下: 其中E2,E1,E0是Rs中最高有效位的符号扩展位。 转移控制类指令 软件中断 子程序调用指令 有条件/无条件跳转 子程序返回 中断返回 无条件长跳转 软件中断 功能描述: 产生一个由指令控制的软件中断,CPU会跳到中断向量[0x00FFF5]处执行软中断服务子程序。 应用举例: BREAK; //产生一个软件中断 子程序调用指令 功能描述: 这是在64页CODE段绝对地址范围内的子程序调用指令。在指令执行期间,程序指针PC和段寄存器SR都会被自动压入栈中。 应用举例: Call sub_1; 有条件/无条件跳转1 功能描述: 这是一组程序条件/无条件近转移指令。通过检测SR寄存器中各标志位作为程序转移的条件。若条件满足则程序跳转到与PC相关的地址上,跳转范围限制为PC+63个字;条件不满足则程序继续执行条件转移指令后面的指令。 有条件/无条件跳转2 应用举例: CMP R1, R2; JNE label1; //若不相等,跳转到label2 JMP labe2; //无条件跳转到label1 子程序返回 功能描述: 从子程序返回时须用RETF指令从栈中弹出状态寄存器SR和程序指针PC的值。由于弹栈动作发生在本指令执行之后,故弹栈后SR和PC的值应分别与调用子程序之前二者的值相同。 应用举例: sub1: .PROC ... RETF; // return from sub1 . ENDP 中断返回 功能描述: 从中断服务子程序返回时须用RETF或者RETI指令从栈中弹出状态寄存器SR和程序指针PC的值。由于弹栈动作发生在本指令执行之后,故弹栈后SR和PC的值应分别与进入中断服务子程序之前二者的值相同。 应用举例: .TEXT .PUBLIC _IRQ1 _IRQ1: ... RETI; // return from IRQ1 无条件长跳转 功能描述: 无条件远转移到用户指定地址。在μnSP? 1.0,目标地址被限制在当前页的内64K字范围内;在μnSP? 1.1,目标地址的寻址空间为整个4M字范围。 应用举例: GOTO loop; //程序无条件跳转到loop标号地址上 其它控制类指令 控制允许/禁止FIR滤波器运算过程中数据的自动移动 FIQ 中断使能/屏蔽 IRQ 中断使能/屏蔽 Interrupt Set No Operation FIQ 中断使能/屏蔽 FIQ ON FIQ OFF 功能描述: 这组指令用来开通/关断FIQ中断。 IRQ 中断使能/屏蔽 IRQ ON IR

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档