第2章ARMTHUMB微处理器结构及指令系统
- 格式:ppt
- 大小:6.25 MB
- 文档页数:5
ARM Thumb指令集详解ARM Thumb指令集详解2019-04-27 12:30来源:MCU嵌入式领域ARM Thumb指令集Thumb指令可以看作是ARM指令压缩形式的子集,是针对代码密度的问题而提出的,它具有16位的代码密度。
Thumb不是一个完整的体系结构,不能指望处理只执行Thumb指令而不支持ARM指令集。
因此,Thumb指令只需要支持通用功能,必要时可以借助于完善的ARM指令集,比如,所有异常自动进入ARM状态。
在编写Thumb指令时,先要使用伪指令CODE16声明,而且在ARM指令中要使用BX指令跳转到Thumb指令,以切换处理器状态。
编写ARM指令时,则可使用伪指令CODE32声明。
1 Thumb指令集与ARM指令集的区别Thumb指令集没有协处理器指令,信号量指令以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且指令的第二操作数受到限制;除了跳转指令B有条件执行功能外,其它指令均为无条件执行;大多数Thumb数据处理指令采用2地址格式。
Thumb指令集与ARM指令的区别一般有如下几点:跳转指令程序相对转移,特别是条件跳转与ARM代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移。
数据处理指令数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中。
数据处理操作比ARM状态的更少,访问寄存器R8~R15受到一定限制。
除MOV和ADD指令访问器R8~R15外,其它数据处理指令总是更新CPSR中的ALU状态标志。
访问寄存器R8~R15的Thumb数据处理指令不能更新CPSR中的ALU状态标志。
单寄存器加载和存储指令在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。
批量寄存器加载和存储指令LDM和STM指令可以将任何范围为R0~R7的寄存器子集加载或存储。
PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈。
ARM架构及ARM指令集、Thumb指令集你了解多少?1991 年ARM 公司成⽴于英国剑桥,在成⽴后的那⼏年,ARM业绩平平,⼯程师们也⼈⼼惶惶,害怕随时都会失业。
在这个情况下,ARM 决定改变他们的产品策略——他们不再⽣产芯⽚,转⽽以授权的⽅式,将芯⽚设计⽅案转让给其他公司,即“Partnership”开放模式。
没想到正是这种模式,开创了属于ARM的全新时代。
ARM所采取的是IP(Intellectual Property,知识产权)授权的商业模式,收取⼀次性技术授权费⽤和版税提成。
具体来说,ARM有三种授权⽅式:处理器、POP以及架构授权。
处理器授权是指授权合作⼚商使⽤ARM设计好的处理器,对⽅不能改变原有设计,但可以根据⾃⼰的需要调整产品的频率、功耗等。
POP(processor optimization pack,处理器优化包)授权是处理器授权的⾼级形式, ARM出售优化后的处理器给授权合作⼚商,⽅便其在特定⼯艺下设计、⽣产出性能有保证的处理器。
架构授权是ARM会授权合作⼚商使⽤⾃⼰的架构,⽅便其根据⾃⼰的需要来设计处理器(例如后来⾼通的Krait架构和苹果的Swift架构,就是在取得ARM的授权后设计完成的)。
所以,授权费和版税就成了ARM的主要收⼊来源。
除此之外,就是软件⼯具和技术⽀持服务的收⼊。
⼀、ARM 微处理器的应⽤领域及特点ARM处理器市场覆盖率最⾼、发展趋势⼴阔,基于ARM技术的32位微处理器,市场的占有率⽬前已达到80%。
绝⼤多数IC制造商都推出了⾃⼰的ARM结构芯⽚。
我国的中兴集成电路、⼤唐电讯、华为海思、中芯国际和上海华虹,以及国外的⼀些公司如德州仪器、意法半导体、Philips、Intel、Samsung等都推出了⾃⼰设计的基于ARM核的处理器。
⼯业控制领域:作为32 的RISC 架构,基于ARM 核的微控制器芯⽚不但占据了⾼端微控制器市场的⼤部分市场份额,同时也逐渐向低端微控制器应⽤领域扩展,ARM 微控制器的低功耗、⾼性价⽐,向传统的8 位/16 位微控制器提出了挑战。
第二章 ARM体系结构一、填空1、 ARM微处理器支持7种运行模式为、、、、、、。
用户模式(usr): ARM处理器正常的程序执行状态快速中断模式(fiq):用于高速数据传输或通道处理外部中断模式(irq):用于通用的中断处理管理模式(svc):操作系统使用的保护模式数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储与存储保护。
系统模式(sys):运行具有特权的操作系统任务。
未定义指令中止模式(und:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
2、嵌入式微处理器的体系结构可以采用或结构,指令系统可以选和。
冯·诺依曼体系结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址与数据总线,程序和数据的宽度相同。
例如:8086、ARM7、MIPS…哈佛体系结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。
例如:AVR、ARM9、ARM10…精简指令系统 RISC复杂指令集系统 CISC3、AMBA定义了3组总线、和。
AHB(AMBA高性能总线):用于高性能。
高数据吞吐部件,如CPU、DMA、DSP之间的连接。
ASB(AMBA系统总线):用来作处理器与外设之间的互连,将被AHB取代。
APB(AMBA外设总线):为系统的低速外部设备提供低功耗的简易互连。
系统总线和外设总线之间的桥接器提供AHB/ASB部件与APB部件之间的访问代理与缓冲。
4、ARM系列微处理器支持的边界对齐格式有:、和字对齐。
字节对齐半字对齐5、RS-232C的帧格式由四部分组成,包括:起始位、、奇偶校验位和。
数据位停止位6、ARM微处理器有种工作模式,它们分为两类、。
其中用户模式属于。
七非特权模式特权模式非特权模式7、ARM7TDMI采用级流水线结构,ARM920TDMI采用级流水线。
ARM微处理器的指令系统第3章 ARM微处理器的指令系统本章介绍ARM指令集、Thumb指令集,以及各类指令对应的寻址方式,通过对本章的阅读,希望读者能了解ARM微处理器所支持的指令集及具体的使用方法。
本章的主要内容有:-ARM指令集、Thumb指令集概述。
-ARM指令集的分类与具体应用。
-Thumb指令集简介及应用场合。
3.1 ARM微处理器的指令集概述3.1.1 ARM微处理器的指令的分类与格式ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。
ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类,具体的指令及功能如表3-1所示(表中指令为基本ARM指令,不包括派生的ARM指令)。
表3-1 ARM指令及功能描述当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。
当指令的执行条件满足时,指令被执行,否则指令被忽略。
每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。
条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。
例如,跳转指令B可以加上后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位时发生跳转。
在16种条件标志码中,只有15种可以使用,如表3-2所示,第16种(1111)为系统保留,暂时不能使用。
表3-2 指令的条件码所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。
目前ARM指令系统支持如下几种常见的寻址方式。
3.2.1 立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。
这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。