3、ARM9指令系统课件.ppt

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

嵌入式系统及其开发应用 第三章 ARM9指令系统 东南大学计算机科学与工程学院 计算机系统结构研究室 徐造林 ;本章提要;3.1 ARM处理器的寻址方式;3.1.1 寄存器寻址;3.1.2 立即寻址;3.1.3 寄存器间接寻址;3.1.4 变址寻址;3.1.5 寄存器移位寻址;3.1.5 寄存器移位寻址;3.1.5 寄存器移位寻址;LSR操作 格式为: 通用寄存器,LSR 操作数 LSR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,左端用零来填充,最后一个右移出的位放在状态寄存器的C位CPSR[29]中,如后图所示。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。;操作示例: MOV R0, R1, LSR#4 ;将R1中的内容右移4位后传送到R0中。 ;其中把最后移出的位赋给程序状态寄存器的C位CPSR[29]。 ;3.1.5 寄存器移位寻址;操作示例: MOV R0, R1, ROR#4 ;将R1中的内容循环右移4位后传送到R0中, ;其中把最后移出的位赋给程序状态寄存器的C位CPSR[29]。 ;ASR操作 格式为: 通用寄存器,ASR 操作数 ASR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,最左端的位保持不变,最后一个右移出的位放在状态寄存器的C位CPSR[29] ,如后图所示。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。 这种移位对有符号数据使用时可以保持符号位不变。;3.1.5 寄存器移位寻址;RRX操作 RRX操作的格式为: 通用寄存器,RRX 操作数 RRX可完成对通用寄存器中的内容进行带扩展的循环右移的操作,按操作数所指定的数量向右循环移位,左侧空位由状态寄存器C位来填充,右侧移出的位移进状态位C中,如后图所示。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。;操作示例: MOV R0, R1, RRX#2 ;将R1中的内容进行带扩展的循环右移两位后传送到R0中。;采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以一次对多个寄存器寻址,多个寄存器由小到大排列,最多可传送16个寄存器。 例如: LDMIA R1!,{R2-R4,R5} ;R2←[R1] ;R3←[R1+4] ;R4←[R1+8] ;R5←[R1+12] 该指令的后缀IA表示在每次执行完加载/存储操作后,R1按字长度增加,因此,指令可将连续存储单元的值传送到R2~R5。;3.1.7 堆栈寻址;3.1.7 堆栈寻址;3.1.8 相对寻址 ;本章提要;3.2 ARM指令集;ARM指令的基本格式如下:; ARM指令的基本格式如下:;3.2 指令集介绍;3.2 指令集介绍;;3.2 指令集介绍;3.2.2 条件码;3.2.2 条件码;C代码: if(a b) a++; else b++;;3.2.3 ARM 存储器访问指令;3.2.3 ARM 存储器访问指令;;3.2.3 ARM 存储器访问指令;1.单一数据加载/存储指令 (1)LDR指令 格式为: LDR{条件} 目的寄存器,存储器地址 LDR指令是字加载指令,用于从存储器中将一个32位的字数据传送到目的寄存器中。;指令示例: LDR R3,[R4] ;将存储器地址为R4的字数据读入寄存器R3。 LDR R3,[R1,R2] ;将存储器地址为R1+R2的字数据读入寄存器R3。 LDR R3,[R1,#8] ;将存储器地址为R1+8的字数据读入寄存器R3。 LDR R3,[R1,R2]! ;将存储器地址为R1+R2的字数据读入寄存器R3,并将新地址R1+R2写入R1。 LDR R3,[R1,#8] ! ;将存储器地址为R1+8的字数据读入寄存器R3,并将新地址R1+8写入R1。;0x55;LDR R3,[R1],R2 ;将存储器地址为R1的字数据读入寄存器R3,并将新地址R1+R2写入R1。 LDR R3,[R1,R2,LSL#3]! ;将存储器地址为R1+R2×8的字数据读入寄存器R3

文档评论(0)

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

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

1亿VIP精品文档

相关文档