第3章 ARM9指令集和汇编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BKPT ARMv5版本引入的断点指令,使用断点指令使ARM处理器进入Debug模式 格式为 举例 杂项指令 BKPT immed_16 BKPT 0xFF32 BKPT 640 * PPT课件 饱和算术指令 QADD,QSUB,QDADD和QDSUB 饱和算术指令(saturating arithmetic instructions)在发生溢出时,Q位会被置位,若结果小于–231,返回的结果为–231,若结果大于231 -1,则返回的结果为231 -1。因此如果在计算结束后目标寄存器保存了饱和数(–231或231 -1)且Q置位,则说明程序发生了溢出。 格式为 举例 op{cond} Rd, Rm, Rn QADD R3, R3, R2 QDSUB R4, R3, R8 * PPT课件 ARM伪指令 ADR 小范围的地址读取伪指令,主要用来读取基于PC相对偏移的地址或基于寄存器相对偏移的地址。 格式为 举例 ADR{cond} register, expr SUB R2, PC, 0xC; 相对PC偏移12个字节 * PPT课件 ADRL 中等范围地址取指伪指令,它的取值范围比ADR要大,通常会用两条指令来替代 格式为 举例 ARM伪指令 ADR{cond}L register, expr start MOV R4, #0x22 ADR R2, start + 60000 * PPT课件 寄存器寻址 寄存器寻址也是一种不需要访问存储器内容的寻址方式,指令中直接指明操作数所在的寄存器,执行时处理器直接访问寄存器获取操作数 ARM指令的寻址方式 ADD R1, R1, R2 ; R1- R1+ R2 MOV R1, R0; R1- R0 * PPT课件 寄存器偏移寻址 寄存器偏移寻址是ARM指令特有的一种寻址方式,第2操作数可以在与第1操作数结合之前,进行各种形式的移位操作 ARM指令的寻址方式 ADD R1, R1, R2 , ROR #0x2; R2循环右移两位后与R1相加,结果放入R1 MOV R1, R0, LSL R2; R0逻辑左移R2位后放入R1中 * PPT课件 寄存器间接寻址 寄存器间接寻址的指令中虽然也是指定寄存器,但并不是直接拿寄存器中的值来进行运算操作,此时寄存器中储存的是地址,处理器需要根据这个地址从存储器中获取操作数。所以寄存器间接寻址是需要进行存储器访问的,所以执行效率比寄存器寻址要慢。 ARM指令的寻址方式 STR R1, [R2]; 将R1的值存入以R2内容为地址的存储器中 SWP R1, R1, [R2]; 交换以R2为地址的存储器内容和R1内容 * PPT课件 基址变址寻址 基址变址寻址与寄存器间接寻址相似,但此时从寄存器取出的内容需要加上指令所给定的偏移量,这样才构成操作数的有效地址。变址寻址方式通常用于访问基地址附近的地址单元,常用于查表,数组操作,功能部件寄存器访问等 ARM指令的寻址方式 op Rd, [Rn, R1] op Rd, [Rn, FlexOffset] op Rd, [Rn, FlexOffset]! op Rd, [Rn], FlexOffset * PPT课件 多寄存器寻址 多寄存器寻址方式可以在同一条指令中完成多个寄存器数据的传送,最多可以传送16个通用寄存器 ARM指令的寻址方式 LDMIA R0, {R1, R2, R3, R4, R5} ; R1- R0, R2- R0+4, …, R5-R0+16 STMIA R0, {R2-R5, R7}; R0-R2, R0+4-R3, … , R0+12-R5, R0+16-R7 * PPT课件 堆栈寻址 堆栈是一个后进先出的数据结构,堆栈寻址方式会有一个指针,始终指向存储单元的栈顶,这个指针需要用一个专门的寄存器来存放,这个寄存器一般是R13。 ARM指令的寻址方式 * PPT课件 有四种栈堆形式: 堆栈指针总是指向最后压入堆栈的数据,称为满堆栈(Full Stack) 堆栈指针指向下一个空位置时,称为空堆栈(Empty Stack) 从低地址向高地址生长的堆栈叫递增堆栈(Ascending Stack) 从高地址向低地址生长的堆栈叫递减堆栈(Descending Stack) ARM指令的寻址方式 * PPT课件 ARM指令的寻址方式 STMFD SP!, {R1-R7, LR} ; 将R1-R7,LR存放到堆栈中,这条指令一般用来保护现场 * PPT课件 ARM指令的寻址方式 相对寻址 相对寻址可以看作是寄存器变址寻址方式的一个特例,因为此时包含基地址的寄存器特指程序计数器PC,通过PC值与指令中的偏移量结合,生成有效的

文档评论(0)

锦绣中华 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档