[研究生入学考试]首师大嵌入式总复习.ppt

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

异常向量(Exception Vectors) ARM的异常优先级 指令长度 指令集可以是以下任一种 32 bits 长 (ARM状态) 16 bits 长 (Thumb 状态) ARM7TDMI 支持3种数据类型 字节 (8-bit) 半字 (16-bit) 字 (32-bit) 字必须被排成4个字节边界对齐,半字必须被排列成2个字节边界对齐 ARM 指令集的特点 Load-store 结构* load/store –从存储器中读某个值,操作完后再将其放回存储器中 只对存放在寄存器的数据进行处理; 对于存储器中的数据,只能使用load/store指令进行存取 ARM指令的寻址方式 寻址方式:处理器根据指令中给出的地址信息来寻找物理地址的方式。 7种寻址方式 寄存器寻址 立即寻址 寄存器间接寻址 寄存器变址寻址 多寄存器寻址 相对寻址 堆栈寻址 ARM指令的寻址方式 立即寻址 也叫立即数寻址,是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。 例如以下指令: ADD R0,R0,#1 ;R0←R0+1 ADD R0,R0,#0x3f ;R0←R0+0x3f ARM指令的寻址方式 寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,指令中地址码给出的是寄存器编号。 例如以下指令: ADD R0,R1,R2 ;R0←R1+R2 ARM指令的寻址方式 寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址(这个寄存器相当于指针的作用,在基址加变址的寻址方式中,它作为基址寄存器来存放基址地址),而操作数本身存放在存储器中。 例如以下指令: ADD R0,R1,[R2] ;R0←R1+[R2] LDR R0,[R1] ;R0←[R1] ARM指令的寻址方式 基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址,用于访问基址附近的存储器单元。 ARM指令的寻址方式 基址变址寻址 变址寻址方式可分为 : 前变址模式 LDR R0,[R1,#4] ;R0←[R1+4] 自动变址模式 LDR R0,[R1,#4]!;R0←[R1+4]、R1←R1+4 后变址模式 LDR R0,[R1],#4 ;R0←[R1]、R1←R1+4 偏移地址 LDR R0,[R1,R2] ;R0←[R1+R2] LDR R0,[R1,R2,LSL#2] ;R0←[R1+R2 * 4] ARM指令的寻址方式 多寄存器寻址 多寄存器寻址又称为块拷贝寻址,是多寄存器传送指令Load/Store的寻址方式,Load/Store指令可把存储器中的一个数据块加载到多个寄存器中,也可把多个寄存器中的内容保存到存储器中。 例如以下指令: LDMIA R0,{R1,R2,R3,R4} ;R1←[R0] ;R2←[R0+4] ;R3←[R0+8] ;R4←[R0+12] ARM指令的寻址方式 堆栈寻址 堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针(SP)的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶 。 ARM指令的寻址方式 堆栈寻址 在ARM指令中,堆栈寻址也是通过Load/Store指令来实现的,例如: STMFD SP! {R1-R7,LR} ;将R1~R7,LR入栈 LDMFD SP! {R1-R7,LR} ;数据出栈,放入 R1~R7,LR寄存器 在Thumb指令中,堆栈寻址通过PUSH/POP指令来实现,例如: PUSH {R1-R7,LR} ;将R1~R7,LR入栈 POP {R1-R7,PC} ;数据出栈,放入R1~R7, PC寄存器 ARM指令的寻址方式 相对寻址 与基址变址寻址方式相类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。

文档评论(0)

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

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

1亿VIP精品文档

相关文档