第3章 ARM体系结构.

Slides:



Advertisements
Similar presentations
嵌入式系统教案 武汉创维特信息技术有限公司 2017/3/4.
Advertisements

2017年3月5日 单片机原理与应用 背景知识调查.
第3章 体系结构与指令系统 本章将对ARM技术进行全面论述,通过本章的学习,使大家对ARM技术有个全面的了解和掌握。了解ARM体系结构、编程模式、异常、片上总线等内容;掌握ARM指令集及其寻址模式。
NEUSOFT Institute of information Technology .ChengDu
第二章 嵌入式处理器.
嵌入式体系结构与应用 第二章-ARM处理器.
第3章 基于ARM的处理器体系结构1 主讲 马洪连.
第2章ARM/THUMB微处理器结构及指令系统
微机原理与接口技术 第二章 ARM微处理器硬件结构
第3章 基于ARM的处理器体系结构1 主讲 丁男.
ARM 架构.
ARM的体系结构与编程.
逆向工程-汇编语言
嵌入式系统讲义 第3章 ARM指令系统 周国运
第4章 ARM7TDMI(-S)指令系统.
考核方式和评分标准 考核方式 平时作业和表现(占10%)+实验(占20%)+笔试(70%,闭卷考试 )
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
C H A P T E R 4 ARM7指令集.
异 常 处 理.
College of Computer Science & Technology
存储系统.
第3章 8086/8088指令系统 mov ax,12h call display Jmp 1234h.
7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术.
Lecture 03: Cortex M3存储系统访问
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
第四章 Thumb 指令集 4.1 Thumb 指令集概述 4.2 Thumb 指令详细介绍.
提纲 第四章 ARM指令分类及寻址方式 1 ARM 微处理器指令的分类 2 ARM 微处理器指令的条件域 3 ARM 微处理器指令的寻址方式.
嵌入式体系结构与应用 第三章-ARM指令系统(ARMv4T).
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
第四章 ARM指令集 ARM指令集概述 ARM寻址方式 ARM指令详细介绍 一些基本的ARM指令功能段.
第3章 ARM寻址方式与指令系统 ARM编程模型 ARM指令格式和寻址方式 ARM指令集 Thumb指令集.
逆向工程-汇编语言
ARM處理器 定址方式.
CPU结构和功能.
嵌入式系统教案 武汉创维特信息技术有限公司 2019/1/18.
(第2版).
(第2版).
第二章 80x86计算机组织 x86微处理器 2.2 基于微处理器的计算机系统构成 2.3 中央处理机 2.4 存储器
第2章 ARM体系结构.
ARM 架构.
ARM 架构.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第三章 ARM体系结构及编程模型 提纲 ARM技术的应用领域及特点 ARM微处理器系列 ARM处理器的工作状态
ARM 处理器内核.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
ARM及Thumb指令集 (练习).
第2章ARM/THUMB微处理器结构及指令系统
第3章 ARM微處理器的指令集.
ARM指令集 Author : Steve Furber Advisor: Mei-Ling Chiang Speaker: 徐翔宇
嵌入式系统教案 武汉创维特信息技术有限公司 2019/4/29.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第三章 MCS 51的硬件结构.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
College of Computer Science & Technology
ARM简介及BootLoader介绍 黄大荣
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
单片机应用技术 项目一 循环彩灯装置 第5讲 MCS-51单片机指令系统及指令格式 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
微處理機 Microprocessor (100上) ARM 內核嵌入式SOC原理
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 标志寄存器.
第3章 目录 1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第3章 ARM7体系结构.
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
嵌入式系统教案 武汉创维特信息技术有限公司 2019/10/1.
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第3章 ARM体系结构

第3章 ARM体系结构 3.1 ARM微处理器基础 3.2 ARM的内核系列 3.3 ARM微处理器的指令系统

3.1 ARM微处理器基础 ARM的运行模式 ARM的工作状态 ARM的寄存器组织 ARM的异常 ARM的存储器格式 ARM的特点和优势

ARM的运行模式 ARM微处理器支持7种运行模式,分别为: 用户模式(usr): ARM处理器正常的程序执行状态 快速中断模式(fiq): 用于高速数据传输或通道处理 中断模式(irq): 用于通用的中断处理 管理模式(svc): 操作系统使用的保护模式 终止模式(abt) : 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式(sys): 运行具有特权的操作系统任务。 未定义模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。 运行模式之间主要区别是对应不同的寄存器组。

ARM的工作状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: ARM状态,此时处理器执行32位的字对齐的ARM指令 Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令 ARM微处理器的工作状态的区别主要在于使用不同长度的指令集。

ARM的寄存器组织 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问。 在某种时刻,通用寄存器R14~R0、程序计数器PC、一个或两个状态寄存器都是可访问的。 ARM寄存器不可同时被访问。

ARM的寄存器组织 ARM状态下的寄存器组织。

ARM的寄存器组织 Thumb状态下的寄存器组织。

ARM的寄存器组织 Thumb状态下的寄存器组织。

ARM的寄存器组织 Thumb状态与ARM状态的寄存器的对应关系

ARM的寄存器组织 程序状态寄存器PSR的格式。 PSR寄存器的各个位: 中断禁止位I、F Thumb标志位 运行模式位M[4:0]

ARM的寄存器组织 状态寄存器模式位的含义 M[4:0] 处理器模式 0b10000 用户模式 0b10001 FIQ 0b10010 IRQ 0b10011 管理模式 0b10111 终止模式 0b11011 未定义模式 0b11111 系统模式 模式位的含义,5位表示7种模式

ARM的异常 异常类型 具体含义 复位 (Reset) 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行。 未定义指令 (Undefined) 当ARM 处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真。 软件中断 (SWI) 该异常由执行SWI 指令产生,可用于用户模式下的程序调用特权操作指令。可使用该异常机制实现系统功能调用。 指令预取终止 (Prefetch Abort) 若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出终止信号,但当预取的指令被执行时,才会产生指令预取终止异常。 数据终止 (Data Abort) 若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据终止异常。 外部中断请求 (IRQ) 当处理器的外部中断请求引脚有效,且CPSR 中的I 位为0 时,产生IRQ 异常。系统的外设可通过该异常请求中断服务。 快速中断请求 (FIQ) 当处理器的快速中断请求引脚有效,且CPSR 中的F 位为0 时,产生FIQ 异常。 复位、外部中断请求和快速中断请求属于外部异常,其他属于内部异常。

ARM的异常 返回指令 以前的状态 ARM Thumb BL MOV PC,R14 PC+4 PC+2 SWI MOVS PC,R14_svc UDEF MOVS PC,R14_und FIQ SUBS PC,R14_fiq,#4 IRQ SUBS PC,R14_irq,#4 PABT SUBS PC,R14_abt,#4 DABT SUBS PC,R14_abt,#8 PC+8 注意跳转和各种异常返回指令差异的内涵。

ARM的异常 1(最高) 复位 2 数据终止 3 FIQ 4 IRQ 5 预取指令终止 6(最低) 未定义指令、SWI ARM异常的优先级 2 数据终止 3 FIQ 4 IRQ 5 预取指令终止 6(最低) 未定义指令、SWI 注意:未定义指令和软中断是不会同时发生的。优先级之间的顺序在逻辑上的合理性。

ARM的存储器格式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从第0字节到第3字节放置第一个存储的字数据,从第4个字节到第7个字节放置第二个存储的字数据,依次排列。 作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(32位)。 ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。 ARM通过配置,可以同时支持大端格式和小端格式。 大端格式下,字数据的高地址是存储在内存的低地址中。 小端格式下,字数据的低地址是存储在内存的低地址中。

ARM的存储器格式 大端格式 大端格式适合网络协议栈等应用。

ARM的存储器格式 小端格式。 x86体系结构为小端格式。

ARM的特点和优势 1.内核编程体系 2.协处理器 3.AMBA(先进控制器总线体系) 4. 嵌入式ICE、低功耗、小体积 多种模式的切换 众多的通用寄存器 32位地址/数据操作 指令集中的特殊功能 高效的C和C++编译器 硬件乘法器 Thumb指令集 E增强DSP指令 Jazzle技术 2.协处理器 MMU MPU VFP 3.AMBA(先进控制器总线体系) 4. 嵌入式ICE、低功耗、小体积 ARM通过配置,可以同时支持大端格式和小端格式。 大端格式下,字数据的高地址是存储在内存的低地址中。 小端格式下,字数据的低地址是存储在内存的低地址中。

3.2 ARM的内核系列 ARM内核分类与系列 ARM体系结构版本 注意区分内核系列和体系结构版本的区别。

ARM内核分类与系列 ARM内核系列 ARM7 系列 ARM9 系列 ARM9E 系列 ARM10E 系列 SecurCore 系列 StrongARM/Xscale ARM11系列 Cortex

ARM内核分类与系列 ARM内核的发展历程 1994-2004年发布的ARM内核

ARM内核分类与系列 处理器内核 内核分类 处理器内核 内核分类 ARM7 ARM7DMI(-S) ARM11 ARM1136J(F)-S 处理器内核 内核分类 ARM7 ARM7DMI(-S) ARM720T ARM7EJ-S ARM9 ARM920T ARM922T ARM9E ARM926EJ-S ARM946E-S ARM966E-S ARM968E-S ARM10E ARM1020E ARM1022E ARM1026EJ-S 处理器内核 内核分类 ARM11 ARM1136J(F)-S ARM1156T2(F)-S ARM1176JZ(F)-S SecurCore SC100 SC110 SC200 SC210 Strong ARM Xscale

ARM7内核 ARM7TDMI ARM7TDMI-S ARM7EJ-S ARM720T ARM7TDMI ARM7TDMI-S

ARM9内核 ARM920T ARM922T ARM920T ARM922T

ARM9E内核 ARM926EJ-S ARM946E-S ARM966E-S ARM968E-S ARM926EJ-S ARM946E-S   ARM966E-S ARM968E-S

ARM10E内核 ARM1020E ARM1022E ARM1026EJ-S     ARM1020E ARM1026EJ-S

ARM11内核 ARM1136J(F)-S ARM1156T2(F)-S ARM1176JZ(F)-S ARM1136J(F)-S     ARM1136J(F)-S ARM1156T2(F)-S ARM1176JZ(F)-S

SecurCore内核 SC100/SC110 SC200/SC210         SC100/SC110 SC200/SC210

其他ARM内核 StrongARM Intel XScale Cortex ARM Cortex A (应用内核) ARM Cortex R (实时内核) ARM Cortex M (微控制器)        

ARM体系结构版本 ARM V1体系是最初的版本,只有26位的寻址空间,没有乘法指令,最终也没有商业化。 ARM V2体系与V1体系同为26位寻址空间具有乘法和乘加指令,支持协处理器。 ARM V3体系的寻址范围扩展到32位,具有乘法和乘加指令,支持协处理器。 ARM V3体系增加了半字存储操作,对调试的支持以及支持嵌入的ICE。 ARM V3体系增加了 DSP指令支持和对 Java指令的支持。 ARM V6体系增加了媒体指令,ARMv6指令集合中加入了超过60条SIMD单指令多数据指令。 ARM V7体系定义了三种独立的内核型-- A(应用领域),R(实时领域),M(控制领域)。        

3.2 ARM微处理器的指令系统 ARM指令系统的概述 ARM的寻址模式 ARM的指令集 Thumb的指令集

ARM指令系统的概述 助记符 指令功能描述 ADC 带进位加法指令 ADD 加法指令 AND 逻辑与指令 B 跳转指令 BIC 位清零指令 BL 带返回的跳转指令 BLX 带返回和状态切换的跳转指令 BX 带状态切换的跳转指令 CDP 协处理器数据操作指令 CMN 比较反值指令 CMP 比较指令 EOR 异或指令 LDC 存储器到协处理器的数据传输指令 LDM 加载多个寄存器指令 LDR 存储器到寄存器的数据传输指令 MCR 从ARM MLA 乘加运算指令 MOV 数据传送指令 助记符 指令功能描述 MRC 从协处理器寄存器到ARM MRS 传送CPSR MSR 传送通用寄存器到CPSR MUL 32 MLA MVN 数据取反传送指令 ORR 逻辑或指令 RSB 逆向减法指令 RSC 带借位的逆向减法指令 SBC 带借位减法指令 STC 协处理器寄存器写入存储器指令 STM 批量内存字写入指令 STR 寄存器到存储器的数据传输指令 SUB 减法指令 SWI 软件中断指令 SWP 交换指令 TEQ 相等测试指令 TST 位测试指令        

ARM指令系统的概述 条件码 助记符后缀 标志 含义 0000 EQ Z置位 相等 0001 NE Z清零 不相等 0010 CS C置位 无符号数大于或等于 0011 CC C清零 无符号数小于 0100 MI N置位 负数 0101 PL N清零 正数或零 0110 VS V置位 溢出 0111 VC V清零 未溢出 1000 HI 无符号数大于 1001 LS 无符号数小于或等于 1010 GE N等于V 带符号数大于或等于 1011 LT N不等于V 带符号数小于 1100 GT Z清零且(N等于V) 带符号数大于 1101 LE Z 置位或(N 不等于V) 带符号数小于或等于 1110 AL 忽略 无条件执行 指令的条件码:为ARM指令的高4位。        

ARM的寻址模式 1.立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如以下指令: ADD R0,R0,#1 ;R0←R0+1 ADD R0,R0,#0x3f ;R0←R0+0x3f 在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”后加上“0x”或“&”。

ARM的寻址模式 2 寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。以下指令: ADD R0,R1,R2 ;R0←R1+R2 该指令的执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。

ARM的寻址模式 3. 寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中。例如以下指令: LDR R0,[R1] ;R0←[R1] STR R0,[R1] ;[R1]←R0 第一条指令将以R1 的值为地址的存储器中的数据传送到R0 中。 第二条指令将R0 的值传送到以R1 的值为地址的存储器中。

ARM的寻址模式 4 基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下所示: LDR R0,[R1,#4] ;R0←[R1+4] LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4 LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4 LDR R0,[R1,R2] ;R0←[R1+R2] 在第一条指令中,将寄存器R1 的内容加上4 形成操作数的有效地址,从而取得操作数存入寄存器R0 中。 在第二条指令中,将寄存器R1 的内容加上4 形成操作数的有效地址,从而取得操作数存入寄存器R0 中,然后,R1 的内容自增4 个字节。

ARM的寻址模式 5.多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16 个通用寄存器的值。以下指令: LDMIA R0,{R1,R2,R3,R4} ;R1←[R0] ;R2←[R0+4] ;R3←[R0+8] ;R4←[R0+12] 该指令的后缀IA 表示在每次执行完加载/存储操作后,R0 按字长度增加,因此,指令可将连续存储单元的值传送到R1~R4。

ARM的寻址模式 6.多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16 个通用寄存器的值。以下指令: LDMIA R0,{R1,R2,R3,R4} ;R1←[R0] ;R2←[R0+4] ;R3←[R0+8] ;R4←[R0+12] 该指令的后缀IA 表示在每次执行完加载/存储操作后,R0 按字长度增加,因此,指令可将连续存储单元的值传送到R1~R4。

ARM的寻址模式 7.堆栈寻址 堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。 当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。同时,根据堆栈的生成方式,又可以分为递增堆栈(Ascending Stack)和递减堆栈(DecendingStack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。

ARM指令集 ARM指令的分类

ARM指令集:跳转指令 ARM 指令集中的跳转指令可以完成从当前指令向前或向后的32MB 的地址空间的跳转,包括以下4 条指令: BL 带返回的跳转指令 BLX 带返回和状态切换的跳转指令 BX 带状态切换的跳转指令

ARM指令集:数据处理指令 传送指令: MOV 数据传送指令 MVN 数据取反传送指令 比较指令: CMP 比较指令 CMN 反值比较指令 TST 位测试指令 TEQ 相等测试指令 算术指令: ADD 加法指令 ADC 带进位加法指令 SUB 减法指令 SBC 带借位减法指令 RSB 逆向减法指令 RSC 带借位的逆向减法指令 AND 逻辑与指令 ORR 逻辑或指令 EOR 逻辑异或指令 BIC 位清除指令

ARM指令集:乘法指令 乘法指令与乘加指令: MUL 32 位乘法指令 MLA 32 位乘加指令 SMULL 64 位有符号数乘法指令 SMLAL 64 位有符号数乘加指令 UMULL 64 位无符号数乘法指令 UMLAL 64 位无符号数乘加指令

ARM指令集:加载/存储指令 多寄存器加载存储指令: 单寄存器加载存储指令: LDM 多字节加载指令 LDR 字数据加载指令 STM 多字节存储指令 IA :每次传送后地址+4 IB :每次传送前地址+4 DA :每次传送后地址-4 DB :每次传送前地址-4 FD :满递减堆栈 ED :空递减堆栈 FA :满递增堆栈 EA :空递增堆栈 单寄存器加载存储指令: LDR 字数据加载指令 LDRB 字节数据加载指令 LDRH 半字数据加载指令 STR 字数据存储指令 STRB 字节数据存储指令 STRH 半字数据存储指令 LDRSB有符号的字节加载 LDRSH有符号的半字加载 单寄存器加载存储指令中,注意有符号加载的特性。多寄存器加载存储指令中,注意配对使用的关系。

ARM指令集:程序状态寄存器指令 ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条: MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR 通用寄存器到程序状态寄存器的数据传送指令

ARM指令集:协处理器指令 ARM 的协处理器指令主要用于ARM 处理器初始化ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在ARM 协处理器的寄存器和存储器之间传送数据。ARM 协处理器指令包括以下5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令

Thumb指令集 为兼容数据总线宽度为16 位的应用系统,ARM 体系结构除了支持执行效率很高的32 位ARM指令集以外,同时支持16 位的Thumb 指令集。Thumb 指令集是ARM 指令集的一个子集,允许指令编码为16 位的长度。与等价的32 位代码相比较,Thumb 指令集在保留32 代码优势的同时,大大的节省了系统的存储空间。所有的Thumb 指令都有对应的ARM 指令,而且Thumb 的编程模型也对应于ARM 的编程模型, Thumb 代码所需的存储空间约为ARM 代码的60%~70% Thumb 代码使用的指令数比ARM 代码多约30%~40% 若使用32 位的存储器,ARM 代码比Thumb 代码快约40% 若使用16 位的存储器,Thumb 代码比ARM 代码快约40%~50% 与ARM 代码相比较,使用Thumb 代码,存储器的功耗会降低约30% 运行速度和存储器空间两方面的比较

Thumb指令集 1、分支指令 程序相对转移,特别是条件转移与ARM代码下的转移相比,在范围上受更多的限制,转向子程序是无条件的转移。 2、数据处理指令 数据处理指令是对通用寄存器进行操作。在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第三个寄存器中。 数据处理操作比ARM状态的更少。 访问寄存器R8-R15外,收到一定的限制。 除MOV和ADD指令访问器R8-R15外,其他数据处理指令总是更新CPSR中的ALU状态标志。 访问寄存器R8-R15的THUMB数据处理指令不能更新CPSR中的ALU状态标志。

Thumb指令集 3、单寄存器加载和存储指令 在thumb状态下,单寄存器加载和存储指令只能访问寄存器R0-R7。 4、多寄存器加载和存储指令 LDM和STM指令可以将任何范围为R0-R7的寄存器子集加载或存储。 PUSH和POP指令使用堆栈指令R13作为基址实现满递减堆栈。除R0-R7外,PUSH指令还可以存储连接寄存器R14,并且POP指令可以加载程序指令PC。 Thumb指令集没有协处理器指令、信号量指令及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且第二操作的数收到限制;

课程结束