网站大量收购闲置独家精品文档,联系QQ:2885784924

第八章_ARM指令系统.ppt

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

8.1 ARM寻址方式 8.2 ARM指令格式 数据处理指令 异常产生指令 数据块加载/存储 指 令 格 式 说 明 LDM[cond]modeRn[!],reglist[^] [reglist]←Rn指示的连续存储单元 STM[cond]modeRn[!],reglist[^] Rn指示的连续存储单元← [reglist] 存储单元地址增量模式 IA 传送后地址+4 IB 传送前地址+4 DA 传送后地址-4 DB 传送前地址-4 寄存器列表 范围R0~R15(组合) 编号低对应低地址,编号高对应高地址 !最后地址写回Rn ^用户模式寄存器,非当前模式 起始地址,≠R15 〖例〗利用LDM/STM进行数据复制 LDR R0, =srcData1 ;设置源操作数地址 LDR R1, =dstData1 ;设置目标地址 LDMIA R0, {R2~R9} ;加载8个数据到R2~R9 STMIA R1, {R2~R9} ;保存R2~R9到目标地址 srcData1 srcData2 srcData8 …… srcData3 R2 R3 R9 … R4 8x32Byte R2 R3 R9 … R4 dstData1 dstData2 dstData8 …… dstData3 1. 立即数寻址 操作数由指令直接给出 MOV R0, #0xFF ;R0← 0xFF ADD R0, R0, #300 ;R0← 300 2. 寄存器寻址 操作数存放在寄存器中 ADD R0, R1, R2 ;R0←R1+R2 3. 寄存器移位寻址 寄存器中数据移位后形成操作数 ADD R0, R1, R2 LSR #2 ;R0←R1+R2×4 4. 寄存器间接寻址 操作数地址由寄存器给出 〖例〗MOV R2, #0xC0000018 STR R1, [R2] …… …… 0x000053A1 …… …… 0xC0000010 0xC0000014 0xC0000018 0xC000001C 0xC0000020 0xC0000018 R2 0x000053A1 R1 5. 基址变址寻址 寄存器内容与指令给出的偏移量相加形成操作数地址 LDR R0, [R1, #4] ; R0←[R1+4] LDR R0, [R1], #4 ; R0←[R1], R1←R1+4 LDR R0, [R1, R2] ; R0←[R1+R2] 偏移量由12位表示,即范围4K 6. 多寄存器寻址 完成多个寄存器传送(多达16个寄存器) LDMIA R0,{R1,R3-R5} ;R1←[R0], R3←[R0+4] ;R4←[R0+8], R5←[R0+12] 数据D 数据C 数据B 数据A 数据A 数据B 数据C 数据D 0R0 0000x0010020C R1 R3 R4 R5 7. 相对寻址 PC为基地址,指令中地址标号为偏移量,二者相加形成操作数有效地址。 BL next 8. 堆栈寻址 SP 指示栈顶位置,4种堆栈操作 … … … 0空 SP→ 栈底 满递减堆栈 空递减堆栈 … … … 0空 SP→ 栈底 地址递增 空 0 … … … SP→ 栈底 空递增堆栈 空 0 … … … SP→ 栈底 满递增堆栈 基本指令格式 opcode[cond][s]Rd,Rn,[op2] 操作码 条件域(执行该指令要满足的条件) 要否影响程序状态寄存器(CPSR) 目的寄存器 第一源操作数,必须是寄存器 第二源操作数 1[参数]可选 2 指令长度32bit 3 数据处理类指令通过寄存器移位寻址实现移位操作,ARM不单独提供移位指令 4 除Load/Store类指令,其余指令均不能涉及存储器操作数 说明 opcode[cond][s]Rd,Rn,[op2] 操作码 条件助记符 标志 含义 0000 EQ Z=1 相等 0001 NE Z=0 不相等 0010 CS/HS C=1 无符号数大于或等于 0011 CC/LO C=0 无符号数小于 0100 MI N=1 负数 0101 PL N=0 正数或零 0110 VS V=1 溢出 0111 VC V=0 没有溢出 1000 HI C=1,Z=0 无符号数大于 1001 LS C=0,Z=1 无符号数小于或等于 1010 GE N=V 有符号数大于或等于 1011 LT N!=V 有符号数小于 1100 GT Z=0,N=V 有符号数大于 1101 LE Z=1,N!=V 有符号数小于或等于

文档评论(0)

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

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

1亿VIP精品文档

相关文档