教学计划.ppt

上传人:创****公 文档编号:138092 上传时间:2018-07-10 格式:PPT 页数:25 大小:132.50KB
下载 相关 举报
教学计划.ppt_第1页
第1页 / 共25页
教学计划.ppt_第2页
第2页 / 共25页
教学计划.ppt_第3页
第3页 / 共25页
教学计划.ppt_第4页
第4页 / 共25页
教学计划.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、2018年7月10日星期二10时49分12秒,教学计划,概述ARM体系结构 ARM指令系统 (NOW BEGIN)实时操作系统嵌入式应用处理器开发及应用实例,2018年7月10日星期二10时49分12秒,ARM指令系统,ARM指令系统特点 ARM指令系统 Thumb指令系统 ARM宏汇编,2018年7月10日星期二10时49分12秒,5.1 ARM指令系统特点,ARM指令系统属于RISC指令系统。标准的ARM指令每条都是32位长 有些ARM核还可以执行Thumb指令集,该指令集是ARM指令集的子集,每条指令只有16位,2018年7月10日星期二10时49分12秒,ARM指令特点,每条指令的多功

2、能所有的指令都带有条件 具有灵活的第二操作数 协处理器的作用 通过扩展协处理器完成更加复杂的功能 Thumb指令 低成本 整体执行速度 快代码密度 高具有RISC指令的特点 立即数和直接地址,5.2 ARM指令系统,ARM指令的寻址方式 ARM指令的条件执行 Load/Store类指令ARM数据处理类指令 ARM转移类指令 ARM协处理器类指令 ARM杂项指令 XScale指令,2018年7月10日星期二10时49分12秒,5.2.1 ARM指令的寻址方式,基本寻址方式每条ARM指令都是32位指令,在大多数情况下,可以有三个操作数,其中第一操作数或目的操作数一般为基本操作数方式 复合寻址方式

3、每条ARM指令中还可以有第二和第三操作数,它们采用复合寻址方式,2018年7月10日星期二10时49分12秒,基本寻址方式,寄存器寻址 例:ADD R0 , R1 , R2; (R1)+(R2)R0 这条指令将两个寄存器(R1和R2)的内容相加,结果放入第3个寄存器R0中。 必须注意写操作数的顺序,第1个是结果寄存器,然后是第一操作数寄存器,最后是第二操作数寄存器。,2018年7月10日星期二10时49分12秒,立即数寻址 例:ADD R3 , R3 , #2 ; (R3)+2R3 指令中在操作码字段后面的地址码部分不是通常意义上的操作数地址,而是操作数本身。 第2个源操作数为一个立即数,以“

4、#”为前缀,十六进制值以在“#”后加“0x”或“&”表示,2018年7月10日星期二10时49分12秒,寄存器间接寻址例:LDR R0 , R3 ; (R3)R0 指令中的地址码给出某一通用寄存器的编号。在被指定的寄存器中存放操作数的有效地址,而操作数则存放在存储单元中,即寄存器为地址指针,2018年7月10日星期二10时49分12秒,寄存器变址 例:LDR R0 , R1, #4 ; (R1)+4)R0 相对寻址 相对寻址是变址寻址的一种变通,由程序计数器PC提供基地址。指令中的地址码字段作为位移量。 例:B rel ; (PC)+relPC,2018年7月10日星期二10时49分12秒,复

5、合寻址方式,第二操作数寻址方式 字和无符号字节寻址方式 半字和有符号字节寻址方式 块寻址 协处理器寻址方式,2018年7月10日星期二10时49分12秒,第二操作数寻址方式,ARM运算指令和某些数据传送指令除了目的操作数和第一操作数(它们为寄存器寻址)外,还具有第二操作数,2018年7月10日星期二10时49分12秒,第二操作数寻址方式,立即寻址 例:MOV R0 , #20寄存器直接 例: MOV R0 , R1寄存器移位(Rm , 移位码 #immed_5) 移位码包括: LSL、LSR、ASR、ROR、RRX中的任何一种,移位数由#immed_5决定 例: MOV R0 , R1 ,LS

6、L #1 ; (R1)*2R0寄存器间接移位 (Rm , 移位码 Rs) 移位码包括:LSL、LSR、ASR、ROR,移位位数由Rs的内容决定。例: MOV R0 , R1 LSL R2 ; (R1)*(R2)R0,2018年7月10日星期二10时49分12秒,字和无符号字节寻址方式,ARM中的取数指令的源操作数和存数指令的目的操作数采用带偏移量的变址方式,可以表示为基址+变址寻址。 有效地址为基地址寄存器的内容加上偏移量的值。对于字和无符号字节,寻址方式通常可以包括三种:寄存器间接寻址,前变址偏移寻址和后变址偏移寻址。带偏移量的变址包括常数或寄存器值,2018年7月10日星期二10时49分1

7、2秒,寄存器间接寻址( Rn ) 例: LDR R0 , R1 ;(R1)R0 STR R0, R1 ;(R0)(R1)前变址偏移寻址( Rn , 偏移量!)在数据传送之前,将偏移量加到Rn中。其结果作为传送数据的存储地址。若使用后缀“!”,则结果写回到Rn中,且Rn不允许是R15,2018年7月10日星期二10时49分12秒,立即数偏移 Rn,#!例: LDR R0 , R1 , #5! (R1)+5)R0,(R1)+5R1寄存器偏移 Rn, Rm!例: LDR R0 , R1 , -R2 ;(R1)-(R2)R0 移位寄存器偏移Rn, Rm,LSL #!Rn, Rm,LSR#!Rn, Rm

8、,ASR#!Rn, Rm,ROR#!Rn, Rm,RRX!例: LDR R0 , R1 , R2 ,LSL #2 ;(R1)+(R2)*4)R0,2018年7月10日星期二10时49分12秒,后变址偏移寻址( Rn , 偏移量),Rn的值用作传送数据的存储器地址。在数据传送后,偏移量加到Rn中,结果写回到Rn。Rn不允许是R15,2018年7月10日星期二10时49分12秒,立即数偏移 Rn, #例: LDR R0 , R1 , #4 ;(R1)R0,(R1)+4R1寄存器偏移 Rn, Rm 例: LDR R0 , R3 , -R8 ;(R3)R0,(R3)-(R8)R3移位寄存器偏移Rn,

9、Rm,LSL #Rn, Rm,LSR#Rn, Rm,ASR#Rn, Rm,ROR#Rn, Rm,RRX例: LDR R0 , R3 , R8 , LSL #2 ; (R3)R0,(R3)+ (R8)*4R3,2018年7月10日星期二10时49分12秒,半字和有符号字节寻址方式,ARM中的半字和有符号字节取数和存数指令的寻址方式与字和无符号字节的寻址方式略有不同 。 (具体介绍请参照相关指令集),2018年7月10日星期二10时49分12秒,块寻址,ARM对堆栈的使用一般用多寄存器传送指令,是一种有效的保存处理器状态和多字节传送的有效方式。ARM硬件中的堆栈分为以下四种类型:满向上生长型:堆栈

10、按高地址方向生长,当前堆栈指针指向一个有效值;空向上生长型:堆栈按高地址方向生长,当前堆栈指针指向一个空值;满向下生长型:堆栈按低地址方向生长,当前堆栈指针指向一个有效值;空向下生长型:堆栈按低地址方向生长,当前堆栈指针指向一个空值。,多寄存器传送示意图,STMIA R9! , R0 , R1 , R5 STMIB R9! , R0 , R1 , R5 ,多寄存器传送示意图,STMDA R9! , R0 , R1 , R5 STMDB R9! , R0 , R1 , R5 ,2018年7月10日星期二10时49分12秒,图中表明了如何将3个寄存器存到存储器中,以及使用自动寻址时如何修改基址寄存

11、器。执行指令之前的基址寄存器值是R9,自动寻址之后的基址寄存器是R9,2018年7月10日星期二10时49分12秒,举例说明:下面的两条指令是从R0指向的位置拷贝8个字到R1指向的位置。 LDMIA R0!,R2-R9 STMIA R1,R2-R9 执行指令后,R0由于“!”的引用自动寻址8个字,其值共增加32,而R1不变。,2018年7月10日星期二10时49分12秒,常见多字节传送指令,注:FD, ED, FA, EA 后缀只在堆栈时使用。F 和 E 分别代表堆栈指针指向为满或空。A 和 D 分别表示堆栈是否向上或向下生长。例如:堆栈如果是向上生长,STM 指令向上存放,LDM指令向下读取。IA, IB, DA, DB 后缀在一般数据传送时使用,

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档资料库 > 计划总结

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。