- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西安电子科技大学计算机学院 * 堆栈操作 ARM指令中的堆栈形式 STMFD SP! {R1-R7,LR} LDMFD SP! {R1-R7,LR} 注:一定要带有! Thumb指令中的堆栈形式 PUSH {R1-R7,LR} POP {R1-R7,PC} 堆栈和块拷贝都是利用批量Load/Store指令的寻址方式,有时也可归为一类 西安电子科技大学计算机学院 * 5. ARM指令介绍 5.1 数据处理指令 主要完成寄存器中数据的算术和逻辑运算操作 数据宽度:所有操作数都是32位宽度 寻址方式 立即数寻址 寄存器寻址 寄存器移位寻址 分类 数据传送指令 算术、逻辑运算指令 比较、测试指令 乘法指令 西安电子科技大学计算机学院 * 5.2 Load/Store指令 单寄存器存取指令(LDR和STR) 加载/存储字(32位对齐) 加载/存储半字H(16位对齐) 加载/存储字节B(8位对齐) 多寄存器存取指令(LDM 和STM) 可以实现在一组寄存器和一块连续的内存单元之间传输数据 堆栈操作和块拷贝 存储器和寄存器交换指令SWP 使用SWP可实现信号量操作 寻址方式:基址寻址、变址寻址 西安电子科技大学计算机学院 * 5.3 跳转指令 B 跳转到指定的地址执行程序 BL 将下一条指令的地址拷贝到链接寄存器(R14/LR)中,然后跳转到指定地址运行程序 BX 带状态切换的跳转指令 BLX 带连接和状态切换的跳转指令 注:跳转的范围是±32MB 寻址方式:相对寻址 西安电子科技大学计算机学院 * 5.4 杂项指令 状态寄存器与通用寄存器之间的传送指令 MRS MSR 异常产生指令 SWI 软件中断指令 BKPT 断点中断指令 (ARMv5以上) 协处理器指令 西安电子科技大学计算机学院 * 6 Thumb指令集 Thumb指令集是针对代码密度的问题而提出的。可以看作是ARM指令集的子集。 所有Thumb指令均有对应的ARM指令,而Thumb编程模型也对应于ARM模型。 Thumb是一个不完整的体系结构,不能指望处理器只执行Thumb代码而不支持ARM指令集。一般Thumb代码只需支持通用功能,必要时可以借助于ARM指令集(例:所有异常自动进入ARM模式) 应用程序可以灵活的将ARM指令和Thumb程序混合,以便提高性能和代码密度。同时达到降低功耗、节约成本和提高性能的目的。 西安电子科技大学计算机学院 * 6.1 Thumb指令集的执行 在任何时刻,对指令流的解释取决于CPSR的第5位,即位T,若T置位,则认为指令流为16位的Thumb指令;否则为标准的ARM指令。 并不是所有的ARM处理器都支持Thumb指令。只有在命名中有字母T的才支持,例如以上提到的ARM7TDMI。 西安电子科技大学计算机学院 * 6.2 Thumb状态切换 进入Thumb模式 复位后,ARM启动并执行ARM指令。转向执行Thumb指令的通常方法是执行一条交换转移指令BX。若BX指令指定的寄存器的最低位为1,则将T置位,并将程序计数器切换为寄存器其它位给出的地址 异常返回也可以将微处理器从ARM状态转换为Thumb状态。通常这种指令用于返回到进入异常前所执行的指令流,而不是特地用于转换到Thumb模式 西安电子科技大学计算机学院 * 6.2 Thumb状态切换 退出Thumb模式 执行Thumb BX指令可以显式地返回到ARM指令流。 利用异常进入ARM指令流 西安电子科技大学计算机学院 * 6.3 Thumb指令集特点 继承ARM指令集的特点 采用Load/Store结构 支持8位、16位、32位数据处理 丢弃了ARM指令集一些特点 大多数Thumb指令无条件执行 大多数Thumb数据处理采用2地址格式 异常时的表现 所有异常都会使处理器返回到ARM状态 由Thumb状态进入时地址偏移(2字节对齐)与ARM(4字节对齐)不同 Thumb的寻址方式几乎对等于ARM的方式 西安电子科技大学计算机学院 * 谢谢! 嵌入式系统 第四讲 ARM指令系统 西安电子科技大学计算机学院 * 本节内容 ARM指令集简述 ARM指令格式 ARM指令集编码 ARM寻址方式 ARM指令介绍 Thumb指令介绍 西安电子科技大学计算机学院 * 1. ARM指令集简述 Load/Store 结构 在通用寄存器中进行操作; load/store –从存储器中读某个值,操作完后再将其放回存储器中。 指令分类(6类) 数据处理指令 load/store指令 跳转指令 CPSR处理指令 异常产生指令 协处理器指令 西安电子科技大学计算机学院 * 举例 ADD R2, R1, R0 加法指令,R1+R0=R2 ADDS R1, R1, #1 加法指令,R1+1=R1 影响CP
文档评论(0)