第2章ARMTHUMB微处理器结构及指令系统
ARM Thumb指令集详解-9页word资料
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体系结构
2.5
ARM微处理器指令系统
2.5.1 基本寻址方式
寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地 址的方式,ARM处理器有9 种基本寻址方式。
1.寄存器寻址
操作数的值在寄存器中,指令中的地址码字段给出的是寄存器编 号,指令执行时直接取出寄存器值操作。
例如指令: MOV R1,R2 SUB R0,R1,R2
11111
系统模式
PC,R14~R0,CPSR(ARM v4及以上版本)
并非所有的模式位组合都能定义一种有效的处理器模式。其他组合的 结果不可预知。
2.2 ARM微处理器的寄存器结构
2.2.4 Thumb状态的寄存器集
2.2 ARM微处理器的寄存器结构
2.2.4 Thumb状态的寄存器集
Thumb 状态的寄存器在ARM 状态的寄存器上的映射
在Thumb状态下,程序计数器PC(Program Counter)使用位[1]选 择另一个半字。ARM处理器在两种工作状态之间可以切换。
Thumb状态:当操作数PSR控制位T为1时,执行BX指令进入Thumb 状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、 FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。(异 常都是在ARM 状态中执行) ARM状态:当操作数PSR控制位T为0时,执行BX指令进入ARM状态 ;处理器发生异常(IRQ、FIQ、Reset、Undef、Abort和SWI)。在 此情况下,把PC内容复制到异常模式的链接寄存器中,并且异常处 理将从异常向量地址开始。
sys(系统模式):运行具有特权的操作系统任务。
und(未定义指令中止模式):当未定义的指令执行时进入该 模式,可用于支持硬件协处理器的软件仿真。
ARM架构及ARM指令集、Thumb指令集你了解多少?
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 位微控制器提出了挑战。
第2章 Cortex-M3 内核原理3--Thumb-2指令系统
3. 统一的汇编语言
• ARM指令集体系架构下,ARM指令与Thumb 指令分属不同的程序模块,由不同的汇编 器对其分别进行汇编。
• Thumb-2指令集体系架构下, 16bit指令与 32bit指令可以在同一程序模块出现,并由 同一汇编器对其进行汇编。
Toolchain flow with ARM7
ARM7TDMI
r0
r1
r2
r3
State Change
r4 r5
eg. ISR entry/exit
r6
r7
r8
r8
r9
r9
r10
r10
r11
r11
rr1134r1((2slpr))rr1134r1((2slrrpr11))34
(spr)13 (lrr)14
r13 r(1s3p)(srp1)4 r(1l4r)(lr)
2. Thumb-2指令集分类(续)
• 基于Thumb-2指令体系架构编写的代码在执 行 过 程 中 , 处 理 器 不 存 在 ARM 工 作 状 态 和 Thumb工作状态之间的切换。
• 那么,处理器必须能够自动识别当前指令长 度,是16-bit还是32-bit,以正确地执行Thumb2指令代码,它是如何识别呢?
4. Cortex-M3常用的Thumb-2指令集(续)
(1)数据传送指令(续)
MRS/MSR 指令中的Sreg寄存器:
符号 IPSR EPSR APSR IEPSR IAPSR EAPSR PSR MSP PSP PRIMASK BASEPRI BASEPRI_MAX FAULTMASK CONTROL
当前服务中断号寄存器
功能
执行状态寄存器。它里面含T 位,在CM3 中T 位必须是1。 上条指令结果的标志
ARM及THUMB指令集
; assembles to MVN r0,#0
使用无法用上述方法生成的数据,将产生错误 。
TM
ARM及Thumb指令集
12
12
装载32 bit常数
为允许装载大常数,汇编器提供了一条伪指令: LDR rd, =const 它可能汇编成下列指令: MOV or MVN。 或
LDR 指令,从数据池(Literal pools)读取常数。
11
11
立即数 (2)
Examples:
31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ror #0 ror #8 ror #30
range 0-0x000000ff step 0x00000001 range 0-0xff000000 step 0x01000000 range 0-0x000003fc step 0x00000004
CF
ASR: Arithmetic Right Shift
0
Destination
(无符号数)乘2
Destination
除2,并保留符号位
CF
LSR : Logical Shift Right
...0
ROR: Rotate Right
Destination
位循环
CF
Destination
(无符号数)除2
ARM及Thumb指令集
T
H
E
A
R
C
H
I
T
E
C
T
U
R
E
F
O
R
T TM
[工学]第2章ARMTHUMB微处理器结构及指令系统1
本章主要内容:
(1) ARM/Thumb及相关技术简介 (2) ARM/Thumb微处理器的应用领
域及特点
(3) ARM/Thumb微处理器系列 (4) ARM/Thumb微处理器的结构 (5) ARM/Thumb指令系统
第二章 目录
1 ARM微处理器概述
ARM7 SecurCore
Xscale
ARM9
ARM9E
ARM10
1.1ARM处理器系列
ARM处理器核简介——ARM7
该系列包括ARM7TDMI、ARM7TDMI-S、带 有高速缓存处理器宏单元的ARM720T和扩充了 Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16 位压缩指令集和EmbededICE软件调试方式,适用 于更大规模的SoC设计中。Jazelle是ARM体系结构 的一种相关技术,用于在处理器指令层次对JAVA 加速
1.2 RISC体系结构
●RISC特点如下:
■ 指令规整、对称、简单。指令小于100条,基 本寻址方 式有2~3种。
■ 单周期指令。 ■ 指令字长度一致,单拍完成,便于流水操作;
■ ARM7 三级流水线:取指、译码、执行; ■ ARM9 五级流水线; ■ ARMl0 六级流水线。 ■ 大量的寄存器。寄存器不少于32个。数据处理 器的指令只对寄存器的内容操作。只有加载/ 存储指令可以访问存储器。
1.1ARM处理器系列
ARM处理器核简介——Xscale
Intel Xscale微控制器则提供全性能、高性价比、 低功耗的解决方案,支持16位Thumb指令并集成数 字信号处理(DSP)指令。
第二章 目录
※1 ARM微处理器概述
中北大学嵌入式习题答案第2章
第二章 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及THUMB指令集
loop
… SUBS r1,r1,#1
R1减1,并设置标志位
BNE loop
如果 Z标志清零则跳转
ARM及Thumb指令集
TM
4
4
Condition Codes
下表为所有可能的条件码:
注意:AL为默认状态,不需要单独指出
Suffix
EQ NE CS/HS CC/LO MI PL VS VC HI LS GE LT GT LE AL
位循环
RRX: Rotate Right Extended
Destination
CF
位轮换,从 CF到MSB都参与操作
ARM及Thumb指令集
TM
9
9
寄存器, 可选择是否增加移位操作. 移位值可以是:
5 bit 无符号整数 放在另一个寄存器的低字节
用于常数乘法
立即数 8 bit ,大小范围0-255。
ARM及Thumb指令集
TM
0
0x22
地址增加
r0
0x11
20
20
块数据传送
LDM / STM指令允许一次传送1到16个寄存器到/从存储器中。 寄存器传送顺序不能被指定 • 最小数字的寄存器总是被传送到/从存储器的最低地址上。 LDMIA r10,{r0,r1,r4}
新建一个 text文件 另存为 “gcd.s” 加入到项目中
Build 并执行
AREA myarea, CODE ENTRY
start
MOV r0, #9 MOV r1, #15
; your code here
stop
B stop END
ARM及Thumb指令集
Quiz #2 - GCD
ARM及Thumb指令集
T Bit
Q 位:
仅ARM 5TE/J架构支持 指示饱和状态
仅ARM xT架构支持 T = 0: 处理器处于 ARM 状态 T = 1: 处理器处于 Thumb 状态
Mode位:
J位
处理器模式位
仅ARM 5TE/J架构支持 J = 1: 处理器处于Jazelle状态
34v11 ARM及Thumb指令集
ARM及Thumb指令集
T
H
E
A
R
C
H
I
T
E
C
T
U
R
E
F
O
R
T TM
H
E
D
I
G
I
T
A
L
W
O
R1 L
D
ARM指令小节目录
1.指令格式 2.条件码 3.存储器访问指令 4.数据处理指令 5.乘法指令 6.ARM分支指令 7.杂项指令 8.伪指令
34v11 ARM及Thumb指令集
TM
2
2
ARM指令长度概述
中断禁止位:
N = Negative result from ALU Z = Zero result from ALU C = ALU operation Carried out V = ALU operation oVerflowed
I = 1: 禁止 IRQ. F = 1: 禁止 FIQ.
TM
6
6
4.2 指令集介绍
ARM指令集——基本指令格式
ARM是三地址指令格式,指令的基本格式如下:
ARM微处理器的指令系统
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 立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。
这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。
《微处理器指令系统》课件
PART THREE
简洁性:指令数 量少,易于理解
和记忆
完备性:能够实 现所有需要的功
能
正交性:不同指 令之间互不干扰,
易于组合使用
效率性:指令执 行速度快,占用
资源少
可扩展性:易于 添加新的指令和
功能
兼容性:与其他 指令系统兼容, 便于移植和升级
指令编码:采用二进制编码,便于计算机处理 指令格式:包括操作码、地址码、控制码等部分 指令集设计:包括基本指令、扩展指令、系统指令等 指令执行:包括取指、译码、执行、写回等步骤 指令优化:包括指令级并行、流水线技术、分支预测等 指令兼容性:考虑与现有指令系统的兼容性,便于软件移植和升级
特点:简洁、高效、易于实现
汇报人:
指令级优化:通过编译器优化、硬件优 化等技术提高指令执行效率
指令级安全:增加安全指令,提高系统 安全性
指令级虚拟化:通过虚拟化技术实现指 令级隔离和资源共享
指令级可扩展性:通过可扩展指令集实 现指令级可扩展性
PART FIVE
指令编码:将指令转换为二进制代 码
编码规则:根据指令的功能、操作 数、操作码等确定编码规则
指令集优化:选择合适的指令集,提高执行效率 流水线优化:采用流水线技术,提高指令执行速度 缓存优化:优化缓存设计,提高数据访问速度 并行优化:采用并行技术,提高指令执行效率 功耗优化:优化功耗设计,降低功耗,提高性能 安全性优化:采用安全技术,提高指令系统的安全性
PART FOUR
特点:指令丰富, 功能强大
优点:易于编程, 提高效率
缺点:硬件复杂, 成本高
应用:早期计算机 ,如IBM PC系列
特点:指令简单、执行速度快、功耗低 设计原则:减少指令数量、提高指令执行效率 应用领域:嵌入式系统、移动设备、网络设备等 代表产品:ARM、MIPS、PowerPC等