- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章-ARM9指令集和汇编(初稿)
第3章 ARM9指令集和汇编;提纲;1、ARM指令集概述;RISC简介;ARM状态和Thumb状态(1);必须使用ARM指令的情况
ARM处理器启动的第一句指令必须是ARM指令
访问程序状态寄存器CPSR或协处理器时必须是ARM指令
ARM在处理异常中断时会自动切换到ARM状态,执行中断处理程序入口处的程序。返回时,会再次自动切换到ARM状态ARM指令;v4版本中的函数调用,如果不需要进行状态切换,只需要用到BL指令就可以实现了
如果需要进行状态切换,情况较复杂,如图3-1所示;ARM状态和Thumb状态(4);ARM v5版本后,引入了一条新的指令BLX,结合了BL和BX指令各自的功能特点,使得上图的所示过程通过一条指令就能实现;ARM9指令类型和指令的条件域(1);跳转指令
;数据处理指令
;存储器访问指令;协处理器指令
;杂项指令
;饱和算术指令
;ARM指令一般由操作码、目的寄存器、操作数几部分组成,并可以配合条件码,S后缀等可选项目,以完成更复杂操作,它的格式一般为:
指令中内的项目是必需的,比如opcode, Rd, Rn等,{}内的项目是可选的;opcode;ARM指令集几乎每条指令(除了某些v5T指令)都可以是条件执行的。指令的最高4位[31:28]称为条件码:
;shift_op2形式非常灵活,共有11种形式:;ARM指令集有5种形式的位移操作
LSL逻辑左移
LSR逻辑右移
ASR算术右移ROR循环右移
RRX带扩展的循环右移;逻辑左移(Logical Shift Left):操作时在移位操作时,用0补足低位;而逻辑右移(Logical Shift Right)移动的方向相反,并用0补足高位。
算术右移(Arithmetic Shift Right):在移位操作时,根据符号位来补足高位,若原数符号位是1,即当原数为负数时,移位空出的高位都用1补足,反之则用0补足。
循环右移(ROtate Right):可以将数字看做首位相接的“环形”,当最低位被移出后,它会绕到数组的最高位去,继续参与移位操作。
带扩展的循环右移(Rotate Right one bit with eXtended):较前面的几种移位方法复杂一些,它需要用到CPSR中的C位。当最低位被向右移出后,最高位有C位的值补足,然后被移出的最低位被放到C位中。
;立即数#immediate并不是任意数都是合法的,在立即数寻址中,分配给立即数的空间是12位,8位用于保存一个常数,4位用于保存循环右移基数,而循环右移每次需要移动偶数位,即右移的位数是基数*2。
假设常数为A,循环右移位数为N,则最后得到的立即数=A循环右移(N*2位)。
0x3FC立即数合法,A=0N=0d15
0x1FE不合法;3.2 ARM指令的寻址方式;立即寻址
立即寻址也可被称为立即数寻址,读取指令后可以立即得到操作数,而不需要去物理内存得到相应内容。这个给出的操作数叫立即数,它一般以“#”为前缀,“#0x”、“#0d”,“#0b”开头的计数用来表示十六进制,十进制和二进制。
;寄存器寻址
寄存器寻址也是一种不需要访问存储器内容的寻址方式,指令中直接指明操作数所在的寄存器,执行时处理器直接访问寄存器获取操作数
;寄存器偏移寻址
寄存器偏移寻址是ARM指令特有的一种寻址方式,第2操作数可以在与第1操作数结合之前,进行各种形式的移位操作
;寄存器间接寻址
寄存器间接寻址的指令中虽然也是指定寄存器,但并不是直接拿寄存器中的值来进行运算操作,此时寄存器中储存的是地址,处理器需要根据这个地址从存储器中获取操作数。所以寄存器间接寻址是需要进行存储器访问的,所以执行效率比寄存器寻址要慢。
;基址变址寻址
基址变址寻址与寄存器间接寻址相似,但此时从寄存器取出的内容需要加上指令所给定的偏移量,这样才构成操作数的有效地址。变址寻址方式通常用于访问基地址附近的地址单元,常用于查表,数组操作,功能部件寄存器访问等
;多寄存器寻址
多寄存器寻址方式可以在同一条指令中完成多个寄存器数据的传送,最多可以传送16个通用寄存器
;堆栈寻址
堆栈是一个后进先出的数据结构,堆栈寻址方式会有一个指针,始终指向存储单元的栈顶,这个指针需要用一个专门的寄存器来存放,这个寄存器一般是R13。
;有四种栈堆形式:
堆栈指针总是指向最后压入堆栈的数据,称为满堆栈(Full Stack)
堆栈指针指向下一个空位置时,称为空堆栈(Empty Stack)
从低地址向高地址生长的堆栈叫递增堆栈(Ascending Stack)
从高地址向低地址生长的堆栈叫递减堆栈(Descending Stack)
;ARM指令的寻址方式;ARM指令的寻址方式;跳转指令;ARM实现程序跳转有两种方法
将当前的程序寄存器PC值改写
您可能关注的文档
- 第2单元-计划与决策.ppt
- 第2章--公式与函数.pptx
- 第2章--机器语言程序的建立与执行.ppt
- 第2章-Intel-8086-8088CPU汇编语言编程结构.ppt
- 第2章-protel-99SE原理图设计环境设置.ppt
- 第2章--土木工程定额.ppt
- 第2章-信息商品的价值与价格.ppt
- 第2章-农业机械学模型.pptx
- 第2章-古典国际贸易理论蔡茂森版《国际贸易理论与实务》.pptx
- 第2章-市场营销策划方法论.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
最近下载
- 2024年中国石油秋季招聘通用能力考试笔试备考试题及答案解析.docx
- 第一课 教室盆栽我做主—盆栽养护 课件 浙科版综合实践活动四年级上册.pptx
- 医疗安全(不良)事件根本原因分析法活动指南.pdf VIP
- 2023年中考押题预测卷02(杭州卷)-英语(考试版)A4.docx
- 于品 清华丘班数学分析讲义.pdf VIP
- 金融风险管理(中央财经大学)中国大学MOOC(慕课)章节测验试题(答案).pdf
- 一年一度喜剧大赛江东鸣《先生请出山》完整台词.docx VIP
- 党员立足本职岗位发挥党员先锋引领作用发言稿.doc VIP
- 《机床电气控制》M7130型卧轴矩台平面磨床的电气控制.pdf VIP
- Unit 4 Period 4 Developing Ideas 课件-高一上学期英语课件(外研社2019必修第一册).pptx
文档评论(0)