《ARM体系结构与编程---第一章.ppt》由会员分享,可在线阅读,更多相关《ARM体系结构与编程---第一章.ppt(106页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ARM体系结构与编程嵌入式教研室授课教师:岳洋email:办公电话:862236251这门课主要讲的内容ARM ARM A Advanced dvanced R RISC ISC MMachineachine1 1、ARMARM基础知识(第基础知识(第1 1章)章)2 2、ARMARM汇编(第汇编(第2 2、3 3、4 4、8 8章)章)3 3、ARMARM存储系统存储系统 MMU MMU(第(第5 5章)章)MMemory emory MManagement anagement U Unitnit4 4、异常中断处理(第、异常中断处理(第9 9章)章)2前言了解嵌入式系统概述1 嵌入式系统简
2、介2 嵌入式系统的定义3 嵌入式系统的特点4 嵌入式系统的组成5 嵌入式系统的应用3嵌入式系统组成ESOFTWARE嵌入式软件嵌入式软件嵌入式操作系统嵌入式操作系统处理器处理器(内核)(内核)单片机单片机 ARM PowerPCARM PowerPC DSP DSP嵌入式微处理器嵌入式微处理器配置硬件,补平硬件差异,配置硬件,补平硬件差异,为软件搭建平台为软件搭建平台如如linuxlinux、win win cece uc-os2 uc-os2提供功能应用提供功能应用4嵌入式系统简介嵌入式系统的历史与现状从1946年电子计算机的诞生,发展到今天,在许多场合要求将微型机嵌入到一个对象体系中,实现
3、智能化控制。为了区别于通用计算机系统,把嵌入到对象体系中,实现智能化控制的计算机,称作嵌入式计算机系统。5嵌入式系统简介现代计算机技术的两大分支计算机进入了通用计算机与嵌入式计算机两大分支并行发展时代。通用计算机侧重的发展方向:高速、海量的数值计算、总线速度提升,扩大存储容量。嵌入式计算机对体积、功耗、功能、可靠性、专用性有较高要求。62嵌入式系统的定义7嵌入式系统的定义q参考参考IEEE(国际电气和电子工程师协会)的定义:国际电气和电子工程师协会)的定义:嵌入式系统嵌入式系统:“用于控制、监视或者辅助操作机用于控制、监视或者辅助操作机器和设备的装置器和设备的装置”u嵌入式系统:以计算机技术为
4、基础、软件硬件嵌入式系统:以计算机技术为基础、软件硬件可可裁剪裁剪、面向应用,对、面向应用,对功能、可靠性、成本、体积、功能、可靠性、成本、体积、功耗功耗严格要求的专用计算机系统严格要求的专用计算机系统。8嵌入式系统的应用消费电子消费电子嵌入式应用嵌入式应用信息家电信息家电智能玩具智能玩具军事电子军事电子通信设备通信设备移动存贮移动存贮工控设备工控设备智能仪表智能仪表汽车电子汽车电子网络设备网络设备工业工业军事国防军事国防电子商务电子商务网络网络9现实生活中的嵌入式系统实例家庭环境10现实生活中的嵌入式系统实例办公室环境11现实生活中的嵌入式系统实例工业自动化领域12现实生活中的嵌入式系统实例
5、国防领域13现实生活中的嵌入式系统实例交通领域14现实生活中的嵌入式系统实例航空领域15现实生活中的嵌入式系统实例医疗系统16第1章ARM概述及其基本编程模型17第1章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型181.1ARM简介ARM公司简介 ARM是Advanced RISC Machines的缩写,它是英国一家微处理器行业的知名企业,该企业设计了大量高性能、
6、廉价、耗能低的RISC处理器。RISC特点:精简指令集执行周期更短;硬件结构简单,配备大量寄存器,配合运算和操作;arm9采用哈佛结构(数据总线和指令总线分离),使得指令操作和数据操作可同时进行,速度更快。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。191.1ARM简介ARM公司简介将技术授权给芯片厂商形成各具特色的ARM芯片.201.1ARM简介ARM有三种含义:一个公司的名称;一类处理器的通称;一种技术的名称。ARM不是完整的单片机,它只是一个内核。所谓以ARM为核的单片机,就是把ARM作为中央处理器(核),根据需要设计出:I/O口
7、、功能模块、外围总线接口,用总线把几部分和ARM核连接在一起,组成一个单片机。这个单片机由ARM核控制。211.1 ARM简介在学习单片机时,结构相对简单,会较快的涉及定时器/计数器、串口、I/O引脚的使用。学习ARM核时,同样也是对寄存器的设置(汇编指令、c语言)来控制ARM核、I/O管脚、功能模块,实现功能。ARM与单片机学习过程有许多相识的地方。很多外围电路适用ARM也适用于单片机。学会ARM核以后,就大致掌握了所有以ARM为核的单片机。无论这个单片机结构多么复杂,功能多么强大,也无论它来自哪个厂家。221.1ARM简介ARM体系结构 ARM处理器为RISC(reduce instruc
8、tion set computing)芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典而先进的RISC特点:数据处理操作绝大多数只针对寄存器(D触发器结构,在CPU内部,离cpu最近,速度最快)的内容,而不直接对存储器(内存和外存,在CPU外部,存储器能够保存的数据量大)进行操作;通过load/store指令在寄存器和存储器之间传递数据。RISC处理器,速度更快,较x86处理器快60%,硬件结构简单。简单的寻址模式;统一和固定长度的指令域(32位)简化了指令的译码。具有大量的寄存器(37个)ARMARM体系还采用一些特别技术,见教材第体系还采用一些特别技术,见教材第2
9、 2页页231、在同一条数据处理指令中包含算术逻辑处理和移位处理。在同一条数据处理指令中包含算术逻辑处理和移位处理。如:如:ADD R0,R1,R1,LSL#3;R0=R1+R1*82 2、使用地址自动增加(减少)来优化程序中的循环。使用地址自动增加(减少)来优化程序中的循环。使用地址自动增加(减少)来优化程序中的循环。使用地址自动增加(减少)来优化程序中的循环。如:如:如:如:LDR R0,R1#4;LDR R0,R1#4;先先先先R0R0R1 R1,然后自动使,然后自动使,然后自动使,然后自动使R1+4R1+43 3、Load/StoreLoad/Store指令可以批量传输数据,效率很高。
10、一条指指令可以批量传输数据,效率很高。一条指指令可以批量传输数据,效率很高。一条指指令可以批量传输数据,效率很高。一条指令就可以完成入栈或出栈操作。令就可以完成入栈或出栈操作。令就可以完成入栈或出栈操作。令就可以完成入栈或出栈操作。如:如:如:如:STMFD R13,R4-R6STMFD R13,R4-R6;将将将将R4-R6R4-R6的内容放入以的内容放入以的内容放入以的内容放入以R13R13为栈基址的连续为栈基址的连续为栈基址的连续为栈基址的连续3 3个单元中个单元中个单元中个单元中4 4、所有指令都可以根据前面指令的执行结果,决定是否执行。所有指令都可以根据前面指令的执行结果,决定是否执
11、行。所有指令都可以根据前面指令的执行结果,决定是否执行。所有指令都可以根据前面指令的执行结果,决定是否执行。如:如:如:如:CMP R2,R3 ;R2CMP R2,R3 ;R2与与与与R3R3相等跳到相等跳到相等跳到相等跳到looploop,不等则执行,不等则执行,不等则执行,不等则执行MOV R1,R0MOV R1,R0语句语句语句语句 BEQ loopBEQ loop MOV R1,R0 MOV R1,R0241.1ARM简介各ARM体系结构版本(这里主要指指令集)目前ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号V1V7表示。拥有相同指令集版本的ARM芯片,虽然出自不同的生
12、产厂商,但它们使用的指令和应用软件是相互兼容的。251.1ARM简介各ARM体系结构版本V1 该版本的ARM体系结构,只有26位的寻址空间,如今现在已经废弃不再使用,没有商业化,其特点为:基本的数据处理指令(加,减,与,或,非,比较)(这个版本不包括乘法);字节、字和半字加载/存储指令;具有分支指令,包括在子程序调用中使用的分支和链接指令;在操作系统调用中使用的软件中断指令(SWI)。261.1ARM简介各ARM体系结构版本V2 同样为26位寻址空间,如今现在已经废弃不再使用,它相对V1版本有以下改进:具有乘法和乘加指令;支持协处理器(专门用于进行辅助运算的芯片,其本身除了运算功能外没有其他功
13、能,因此不能独立工作,必须和CPU一起工作(cp15特殊);原子性(不可分割)加载/存储指令SWP和SWPB(见备注)。271.1ARM简介各ARM体系结构版本V3 寻址范围扩展到32位:增加了程序状态保护寄存器SPSR;增加了两种处理器模式(ARM和THUMB);修改了v3以前用于异常返回指令的功能;教材有更详细的介绍281.1ARM简介各ARM体系结构版本V4目前大多使用的arm核,使用的是V4t,v5te版本,它相对V3版本作了以下的改进:增加了半字加载(LDRH)/存储(STRH)指令;增加了字节(LDRSB/STRSB)和半字的加载和符号扩展指令(LDRSH/STRSH);增加了T变
14、种,具有可以转换到Thumb状态的指令;增加了新的特权处理器模式。291.1ARM简介各ARM体系结构版本V5 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并增加了指令,对数字信号处理(DSP)算法提供增强算法支持,具体如下:改进了ARM/Thumb状态之间的切换效率;允许T变种(支持Thumb指令集)和非T变种一样,使用相同的代码生成技术;增加前导零计数(最高有效位前0的个数)指令CLZ和软件断点指令BKPT;对乘法指令如何设置标志作了严格的定义。301.1ARM简介各ARM体系结构版本V6ARM体系版本6是2001年发布的。其主要特点是增加了SIMD
15、(Single Instruction Multiple Data,单指令多数据流)(SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。)功能扩展。它适合使用电池供电的高性能的便携式设备,便携式设备一方面需要处理器提供高性能,另一方面又需要低功耗。ARM体系版本6首先在2002年春季发布的ARM11处理器中使用。311.1ARM简介各ARM体系结构版本V7V7A-应用程序架构通过多模式和对基于MMU的虚拟内存系统体系结构的支持,实现传统ARM体系结构。V7B-实时架构通过多模式和对基于MPU(根据所处模式的访问权限保护内存)的受保护内存系统体系结构的支持。
16、V7M-通过寄存器硬件堆栈以及对使用高级语言写入中断处理程序的支持,微控制器架构实现了专为快速中断处理而设计的程序员模型。321.1ARM简介ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10SecurCoreXscaleStrongARMARM11E331.1ARM简介ARM处理器核简介ARM7 该系列包括ARM7TDMI和扩充了Jazelle(Java加速器)的ARM7EJ-S等等。高档的单片机,除了ARM720T外,都缺少mmu(memory
17、 management unit)不能运行真正的操作系统。ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。341.1ARM简介ARM处理器核简介ARM7特点低功耗0.9MIPS/MHz(mips指每秒百万条指令)的3级流水线结构32位ARM指令集和16位的Thumb指令集主频最高可达130MIPS典型芯片 ATMEL公司AT91M40800/55800A;Samsung公司的S3C44B0/4510B351.2ARM7简介 ARM7基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动
18、电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设、GPIO(General Purpose I/O通用的输入输出端口)组合在一起才能构成现实的芯片。361.2ARM7TDMI简介 ARM7TDMI支持32位寻址范围,使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE(调试接口)观察硬件;ARM7 T D M I 371.1ARM简介ARM处理器核简介ARM9 该系列包括ARM9TDMI、ARM920TARM920T、A
19、RM940T。除了兼容ARM7系列,而且能够更加灵活的设计。ARM9系列主要应用于无线通信、仪器仪表、安全系统和机顶盒等领域。381.1MIPS/MHz1.1MIPS/MHz的哈佛结构(的哈佛结构(程序代码和数据的存储空间分开,程序和数据存储在不同的存储空间中,有各自的程序总线和数据总线),),5级流水线。流水线。3232位位ARMARM指令集和指令集和1616位位ThumbThumb指令集指令集全性能的全性能的MMU(MMU(存储器管理单元),存储器管理单元),支持Windows CE、Linux、uC/os等多种主流嵌入式操作系统物理结构上,支持数据Cache和指令Cache,具有更具有更
20、高的指令和数据处理能力。高的指令和数据处理能力。1.1 ARM简介 ARM处理器核简介ARM9特点典型芯片ATMELATMEL公司公司AT91RM9200 AT91RM9200;SamsungSamsung公司的公司的S3C2410S3C2410 S3C2440 S3C2440 391.1ARM简介ARM处理器核简介ARM10 该系列包括ARM1020E和ARM1022E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。可以用于视频游戏机和高性能打印机等场合。40支持支持DSPDSP指令集指令集,适合于需要高速数字信号,
21、适合于需要高速数字信号处理的场合。处理的场合。6 6级流水线级流水线,指令执行效率更高。,指令执行效率更高。支持支持3232位位ARMARM指令集和指令集和1616位位ThumbThumb指令集。指令集。支持支持6464位的高速位的高速AMBAAMBA总线接口。总线接口。支持支持VFP10VFP10浮点处理协处理器。浮点处理协处理器。全性能的全性能的MMUMMU,支持,支持Windows CEWindows CE、LinuxLinux、Palm OSPalm OS等多种主流嵌入式操作系统。等多种主流嵌入式操作系统。支持数据支持数据CacheCache和指令和指令CacheCache,具有更高的
22、指,具有更高的指令和数据处理能力令和数据处理能力主频最高可达主频最高可达400MIPS400MIPS。内嵌内嵌并行读并行读/写写操作部件。操作部件。1.1 ARM简介 ARM处理器核简介ARM10特点41 ARMARM公司在公司在20032003年年4 4月月2929日宣布了其下一代日宣布了其下一代ARMARM架构架构的的CPUCPUARM11ARM11(又名(又名JaguarJaguar美洲虎),基于美洲虎),基于ARM11ARM11的微处的微处理器具有更强的性能,尤其是多媒体处理能力。理器具有更强的性能,尤其是多媒体处理能力。ARM11ARM11微处理器采用微处理器采用0.130.13微米
23、工艺,低端产品运行在微米工艺,低端产品运行在350MHz350MHz500MHz500MHz,高端产品运行在,高端产品运行在533533750MHz750MHz,如果将,如果将加工工艺减小到加工工艺减小到0.100.10微米,微米,那么芯片速度将达那么芯片速度将达1GHz1GHz。1.1 ARM简介 ARM处理器核简介ARM11E421.1ARM简介ARM处理器核简介SecureCore该系列处理器主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其它安全IC(集成电路)开发提供独特的32位系统设计,并具有特定反伪造方法,从而有助于防止对硬件和软件的盗版。431.1ARM简介ARM处
24、理器核简介Xscale Intel Xscale微控制器(ARMv5TE)核,操作系统包括linux,Windows CE,Symbian OS,和其他一些RTOS.提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。Xscale 处理器是处理器是Intel目前主要推广的一款目前主要推广的一款ARM微处理器。微处理器。典型芯片:典型芯片:PXA250/255/270/27244Xscale苹果苹果iPhoneiPhone手机手机 45ARM ARM 体系结构更新体系结构更新46第1章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.
25、寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型471.2ARM7流水线技术三级流水线 有一种方法可以明显改善硬件资源的使用率和处理器的吞吐量,这就是当前一条指令结束之前就开始后面的指令,就是通常所说的流水线技术。这样可使几个操作同时进行。ARM7的流水线分3级,分别为:取指译码执行48取指译码执行从程序存储器中取出指令送到处理器内核指令译码(指明处理器的操作)执行这些操作取指译码执行取指译码执行取指译码执行t指令指令1指令2指令33
26、级流级流水线功能段划分水线功能段划分PC为某个正在取址指令所在为某个正在取址指令所在的地址,确切地说是该指令的地址,确切地说是该指令最低字节的地址。最低字节的地址。PC指针?PC8指令1指令2指令3PC指针-取指译码执行PC4PC-4-PC-8-高地址高地址高地址高地址低地址低地址低地址低地址491.2ARM7三级流水线技术虽然ARM9和ARM10为5、6级流水线(流水线级数越多,说明单位时间内执行的指令条数可能就越多),但它们都使用了与ARM7相同的流水线机制(它们完全仿真3级流水线的行为),因此ARM7上的代码也可以在ARM9和ARM10上运行。50第1章 目录q1.简介q2.ARM7三级
27、流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介511.7处理器状态处理器状态ARM处理器有两种操作状态:ARM状态:执行32位的ARM指令Thumb状态:16位Thumb指令52第1章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄
28、存器q6.程序状态寄存器q7.体系结构直接支持的数据类型531.4处理器模式简介 ARM体系结构支持7种处理器模式,分别为:用户模式(usr)、快中断模式(fiq)、中断模式(irq)、管理模式(svc)、中止模式(abt)、未定义模式(und)、系统模式(sys)。如下表所示。54处理器模式说明备注用户(usr)user正常程序工作模式不能直接切换到其它模式,可以通过异常切换,如irq(被动),swi指令(主动)系统(sys)system用于支持操作系统与用户模式类似,但具有可以直接切换到其它模式等特权,直接设置CPSR寄存器进行切换。快速中断(fiq)fastinterruptreques
29、t支持高速数据传输及通道处理FIQ异常响应时(引脚低电平有效)进入此模式中断(irq)interruptrequest用于通用中断处理引脚低电平有效,IRQ异常响应时进入此模式管理(svc)supervisor操作系统使用的保护模式(复位后执行bootloader,可以设置引导某个操作系统)系统复位和软件中断(执行SWI指令)响应时进入此模式数据访问中止(abt)abort用于支持虚拟存储或存储器保护当存取异常时进入此模式未定义(und)undefined支持软件仿真硬件的协处理器执行未定义指令时,会将该指令送到协处理器,如果协处理器都处理不了该指令,就产生未定义指令异常中断,进入此模式1.4
30、处理器模式551.4处理器模式特权模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处(因为无mmu)未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它6种模式均为特权模式。特权模式
31、下,可以访问所有系统资源。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式,当用户模式需要进行处理器模式切换时,应用程序可以产生异常处理,如irq(被动),swi指令(主动),在异常处理过程中进行处理模式的切换。未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)系统(sys)561.4处理器模式异常模式处理器模式说明备注用户(usr)正常程序工作模式不能直接切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于
32、通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式未定义(und)中止(abt)管理(svc)中断(irq)快中断(fiq)这五种模式称为异常模式。它们除了可以通过程序(修改CPSR)切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,供异常处理使用。571.4处理器模式用户和系统模式处理器模式说明备注用户(usr)正常程序工作模式不能直接
33、切换到其它模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护代码系统复位和软件中断(swi)响应时进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处,(无mmu)未定义(und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式使用完全相同的寄存器组。系统模式是特权模式,该模式为操作系统提供可以访问所有资源的权限,并可以通过指令(mrs/msr)对C
34、PSR设置,直接进行模式切换。系统(sys)用户(usr)58第一章 目录q8.异常q9.复位q10.存储器及存储器映射I/Oq11.寻址方式简介q12.ARM7指令简介q13.协处理器接口q14.调试接口简介q1.简介q2.ARM7三级流水线q3.处理器状态q4.处理器模式q5.内部寄存器q6.程序状态寄存器q7.体系结构直接支持的数据类型591.5内部寄存器简介 在ARM处理器内部有37个用户可见的通用寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不同。60寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a
35、1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)StackPointerR13R13_svc R13_abt R13_und R13_irqR13_fiqR14(LR)LinkRegisterR14R14_svc R14_abt R14_und R14_irqR14_fiqR15(PC)ProgramCounterR15状态寄存器CPS
36、RCurrentProgramStatusRegisterCPSRSPSRSavedProgramStatusRegister无SPSR_svc SPSR_abt SPSR_undSPSR_irq SPSR_fiq61寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR1
37、2(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_
38、abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:绿色区:31个通用寄存器,每个32位。黄色区:6个状态寄存器,每个32位,但目前仅使用其中12位。62寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7
39、)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0
40、系统系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10
41、_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式下可以访问的寄存器63寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_ir
42、qR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15(即PC)状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0寄存器R0R15为保存数据或地址值的通用寄存器。64寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未
43、定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPS
44、R_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组(未备份)的寄存器,对于任何处理器模式,都使用相同的同一组物理寄存器。65寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5
45、(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15(即PC)状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R14_fiqR14_irqR
46、14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组(备份)寄存器。它们所对应的物理寄存器取决于当前的处理器模式。不同模式下寄存器的使用,要使用寄存器后缀加以区分。66寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5
47、)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8
48、寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以不必执行保存和恢复(R8-R12)的指令,从而加速FIQ的处理速度。67寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R1
49、2_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器 寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。不同模式下寄存器的使用,要使用寄存器后缀加以区分。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13
50、_irqR13_undR13_abtR13_svcR1368寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR1