++++++++++++++++++++++++++++++++++++++++++
本文系本站原创,欢迎转载! 转载请注明出处:
http://blog.csdn.net/mr_raptor/article/details/6556163
++++++++++++++++++++++++++++++++++++++++++
CPU的模式不同,在其对应模式下可以使用的寄存器也不相同,如表3-2所示:
表3-2 ARM处理器模式下寄存器
寄存器类别
|
寄存器在汇编中的名称
|
各模式下实际访问的寄存器
|
用户
|
系统
|
管理
|
终止
|
未定义
|
中断
|
快中断
|
通用寄存器和程序计数器
|
R0(a1)
|
R0
|
R1(a2)
|
R1
|
R2(a3)
|
R2
|
R3(a4)
|
R3
|
R4(v1)
|
R4
|
R5(v2)
|
R5
|
R6(v3)
|
R6
|
R7(v4)
|
R7
|
R8(v5)
|
R8
|
R8_fiq
|
R9(SB,v6)
|
R9
|
R9_fiq
|
R10(SL,v7)
|
R10
|
R10_fiq
|
R11(FP,v8)
|
R11
|
R11_fiq
|
R12(IP)
|
R12
|
R12_fiq
|
R13(SP)
|
R13
|
R13_svc
|
R13_abt
|
R13_und
|
R13_irq
|
R13_fiq
|
R14(LR)
|
R14
|
R14_svc
|
R14_abt
|
R14_und
|
R14_irq
|
R14_fiq
|
R15(PC)
|
R15
|
状态寄存器
|
CPSR
|
CPSR
|
SPSR
|
无
|
SPSR_abt
|
SPSR_abt
|
SPSR_und
|
SPSR_irq
|
SPSR_fiq
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
其中R0~R7在所有模式下都可以使用的共有寄存器,R8~R12是快速中断模式下私有的寄存器,其它模式下不能使用,之所以叫其快速中断,是因为快速中断模式下,这几个私有寄存器里数据在模式切换时可以不用入栈保存。
除了用户模式和系统模式共用一组R13,R14,其余每种模式都私有自己的R13,R14,因为在每种模式下都有自己的栈空间用于执行程序,在执行程序过程中还要保存返回地址,这样可以保证在进入不同模式时,当前模式下栈空间不被破坏。比如:网卡因为数据到达,产生了中断进入中断模式,在中断模式下有自己的中断处理例程(ISR),ISR在执行时要用到栈空间,因此要使用R13,R14。中断处理完成后,返回用户模式下,要继续执行被网卡中断信号中断的执行程序。
用户模式和系统模式为什么要共用一组R13,R14呢?这是因为,在特权模式下可以自由切换工作模式,但是如果切换到用户模式下,就不能再切换到特权模式了,这是CPU为操作系统提供的保护机制,但是有的时候就需要切换到用户模式下去使用其R13,R14寄存器,比如当操作系统的进程进行上下文切换时,如果用户模式和系统模式共用一组寄存器,那么可以切换到系统模式下(系统模式是特权模式)进行操作。
所有R15和CPU同时只能处理一条指令,在取指时,有一个CPSR表示当前<FONT
face=""">CPU的状态即可。
++++++++++++++++++++++++++++++++++++++++++
本文系本站原创,欢迎转载! 转载请注明出处:
http://blog.csdn.net/mr_raptor/article/details/6556163
++++++++++++++++++++++++++++++++++++++++++
分享到:
相关推荐
ARM体系结构数据类型级及寄存器堆栈操作操作实验报告 ①功能实现: 说明软、硬件的设计思路,并展示实现功能,考核对设计功能的实现程度。 ②结果实现: arm-linux-gcc仿真实现,或S3C6410试验箱硬件实现。 ③实验...
ARM处理器共有37个寄存器。其中包括: **31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。 **6个状态寄存器。这些寄存器都是32位寄存器。 ARM处理器共有7种不同的处理器模式,每一种模式中都...
本文主要关于ARM处理器的寄存器介绍
ARM处理器1-寄存器指令系统
x86架构32位处理器寄存器8个通用寄存器%esp -- 栈顶寄存器%ebp -- 栈帧基址寄存器%eip 下一条指令地址6个段寄存器条件码cf carry f
LPC21xx 系列ARM7 处理器寄存器大全 外部存储器寄存器(PINSEL0):
通过实验掌握使用MSR/MRS指令,实现ARM处理器工作模式的切换; 观察不同模式下的寄存器,加深对CPU结构的理解。
编译器针对ARM,MIPS处理器的不同处理
本文主要跟大家来详细的介绍ARM处理器的两种工作状态和七种工作模式,奉上ARM处理器37个寄存器的详细介绍。 ARM处理器的两种工作状态 1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。 2、Thumb状态,16位,...
ARM处理器内核介绍,可以看到ARM内部电路很多细节,链接方式,缓存,寄存器等等框架图,学ARM不论老手还是新手都必须看的一篇幻灯片
1.1从51系列单片机到ARM处理器 1.2ARM不是单片机 1.351系列单片机和ARM处理器的比较 1.4以ARM为核的单片机 1.4.1处理器内核只和外部地址相关 1.4.2ARM怎样组成一个单片机 1.4.3一点启示 第2章ARM处理器基础 2.1ARM...
1.1从51系列单片机到ARM处理器 1.2ARM不是单片机 1.351系列单片机和ARM处理器的比较 1.4以ARM为核的单片机 1.4.1处理器内核只和外部地址相关 1.4.2ARM怎样组成一个单片机 1.4.3一点启示 第2章ARM处理器基础 2.1ARM...
中文版 详细介绍了ARM的指令集,寄存器和处理器模式 对于初学者很有帮助 对于中级用户可以作为手册查询
ARM ADS集成开发环境 Arm汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别 代码分析
目前,ARM系列的通用32位RISC微处理器有ARM7、ARM9、ARM9E、ARM10等多个产品,这些处理器可以工作于7种模式下。除User模式以外的其它模式都叫做特权模式,除User和System以外的其它 5 种模式叫做异常模式。大...
本文目的是要理清ARM处理器的CPSR状态标志和ARM指令的条件符之间的关系。 一、CPSR寄存器 ARM V4的CPSR寄存器(和保存它的SPSR寄存器)中的位分配如下图1所示。 图1 程序状态寄存器格式 状态标志位...
ARM指令的寻址方式-块复制寻址.pdf 学习资料 复习资料 教学资源
Load/Store结构:处理器只处理寄存器中的数据。独立的load和store指令用来完成数据在寄存器和外部存储器之间的传送。因为访问存储器很耗时,所以把存储器访问和数据处理分开。这样有一个好处,就是可反复地使用保存...
1. ARM9TDMI 2. ARM的模块、内核和功能框图 3. ARM处理器状态 4. ARM处理器模式 5.ARM内部寄存器 6.当前程序状态寄存器 7. ARM体系的异常、中断及向量表 8. ARM体系的存储系统 9. 课后
内容分为3部分:第1部分是前4章,从大家所熟悉的51系列单片机的基础知识开始,介绍ARM处理器的基本知识,包括ARM和51系列的对比、中断处理系统、寄存器和存储器结构等;第2部分是5~9章,详细比较ARM指令和51系列...