嵌入式系统讲义

嵌入式系统讲义

ID:43513063

大小:990.50 KB

页数:207页

时间:2019-10-09

嵌入式系统讲义_第1页
嵌入式系统讲义_第2页
嵌入式系统讲义_第3页
嵌入式系统讲义_第4页
嵌入式系统讲义_第5页
资源描述:

《嵌入式系统讲义》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、嵌入式系统讲义第3章ARM指令系统周国运2007.3第3章ARM指令系统主要内容3.1ARM指令结构3.2ARM寻址方式3.3ARM指令集3.4Thumb指令集3.5ARM伪指令3.6ARM汇编语言程序设计3.1ARM指令系统概述主要内容一、指令系统概念二、ARM指令的特点三、ARM指令的格式四、指令的条件码3.1ARM指令系统概述一、指令系统概念指令:是规定计算机进行某种操作的命令。指令系统:计算机能够执行的各种指令的集合。二、ARM指令的特点所有指令都是32位的。大多数指令都在单周期内完成。所有指令都可以条件执行

2、。ARM指令为load/store类型。基本指令仅36条,分成五类。有7种寻址方式。指令集可以通过协处理器扩展。ARM指令是加载/存储(Load/Store)型:也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM指令可以分为五大类:数据处理指令、存储器访问指令、分支指令、协处理器指令、杂项指令。ARM指令有7种寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、基址寻址、堆栈寻址、块拷贝寻址、相对寻址。三、ARM指令的格式ARM指令基本的语法格

3、式为:{}{s},{,}Opcode:指令操作码。cond:指令的条件码。S:决定指令的操作是否影响cpsr的值。Rd:目标寄存器编码。Rn:包含第一个操作数的寄存器编码。Operand2:第2操作数。ARM指令典型的编码格式为:(数据处理指令类)CondOpcodeSRnRdOperand2011121516192021242527283178例:ADDSR2,R1,#1SUBNESR2,R1,#0x20LDRR0,[R1]四、指令的条件码条件码的位数

4、和位置:每条ARM指令包含4位条件码域,它占用指令编码的最高四位[31:28]。条件码的表示:条件编码共24=16种,其中,15种用于指令的条件码。每种条件码用2个英文缩写字符表示。(见P47表2-6)带条件指令的执行:ARM处理器根据指令的执行条件是否满足,决定当前指令是否执行。只有在cpsr中的条件标志位满足指定的条件时,指令才会被执行。不符合条件的代码依然占用一个时钟周期(相当于一个NOP指令)。条件码的书写方法:条件码的位置在指令助记符的后面(因此也称为条件后缀)。例如:MOVEQR0,R1指令条

5、件码表条件码助记符含义标志0000EQ相等Z=10001NE不相等Z=00010CS/HS无符号数大于或等于C=10011CC/LO无符号数小于C=00100MI负数N=10101PI非负数N=00110VS溢出V=10111VC没有溢出V=01000HI无符号数大于C=1且Z=01001LS无符号数小于或等于C=0或Z=11010GE有符号数大于或等于N=V1011LT有符号数小于N!=V1100GT有符号数大于Z=0且N=V1101LE有符号数小于或等于Z=1或N!=V1110AL无条件执行任意1111保留v5以

6、下版本总执行,v5及以上版本有用3.2ARM寻址方式主要内容一、立即寻址二、寄存器寻址三、寄存器间接寻址四、基址寻址五、堆栈寻址六、块拷贝寻址七、相对寻址3.2ARM寻址方式寻址方式:处理器根据指令中给出的(地址)信息,寻找操作数(物理地址)的方式。我们将ARM指令系统的寻址方式分为7种(有分为9种的等)。3.2.1立即寻址立即寻址也叫立即数寻址。立即寻址概念:操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。ADDR0,R0,#1;R0←R0+1MOVR

7、0,#0x3f;R0←#0x3f书写立即数时,要求以“#”为前缀。十六进制数,#后加0x或&,如#0x3f,#&3f.二进制数,#后加0b,如#0b1011十进制数,#后加0d或缺省,如#0d678,#789如何构造32位立即数?在指令格式中,第二个操作数有12位:因此有效立即数immediate可以表示成:=immed_8循环右移(2×rot)4bit移位值(0-15)乘于2,得到一个范围在0-30,步长为2的移位值。因此,将ARM中的立即数称为8位位图。记住一条准则:“最后8位移动偶数位”得

8、到立即数。Immed_8rot……1211870ShifterRORimmediate031ror#0ror#8ror#300000000000000000000000000000000000000000000000000000000000000000000000007例:下列命令中,汇编器把立即数转换为移位操作:MOVR0,#4096;use

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。