CPU模式(mode)、状态与寄存器

原创 2018年04月15日 15:59:03

ARM920T的7种工作模式

(1)usr:正常模式

(2)sys:系统

(3)异常模式

  • und:未定义模式
  • svc:管理模式
  • abt:中止模式:
  1. 指令预取
  2. 数据访问
  • irq:中断模式
  • fiq:快中断模式

2种状态

(1)ARM指令集

每条指令占用4字节

(2)thumb指令集

每条指令占用2字节

比如指令 mov r0, r1使用不同指令集编译后,每条指令占用的空间大小不同

  1. ARM:4byte机器码
  2. THUMB:2byte机器码


寄存器


(1)我们可以看到在异常情况下的寄存器有些事带有灰色的三角,表明在这几种异常模式下,这几个寄存器是有别的用处

其中r13还是我们常说的sp寄存器;r14就是lr寄存器,保存放回的地址

(2)下面是当前状态寄存器(CPSR)每一位的含义


(3)而异常模式下还有一个SPSR,就是用来保存用户模式下的CPSR的值


ARM手册上的简单异常处理流程描述

Action on Entering an Exception(进入异常模式的几个动作)
While handling an exception, the ARM920T does following activities:
1. Preserves the address of the next instruction in the appropriate Link Register(LR_异常 = 下一个PC+4或者+8). If the exception has been
entered from ARM state, then the address of the next instruction is copied into the Link Register (that is,
current PC + 4 or PC + 8 depending on the exception. See Table 2-2 on for details). If the exception has been
entered from THUMB state, then the value written into the Link Register is the current PC offset by a value
such that the program resumes from the correct place on return from the exception. This means that the
exception handler need not determine which state the exception was entered from. For example, in the case of
SWI, MOVS PC, R14_svc will always return to the next instruction regardless of whether the SWI was
executed in ARM or THUMB state.
2. Copies the CPSR into the appropriate SPSR
3. Forces the CPSR mode bits to a value which depends on the exception
4. Forces the PC to fetch the next instruction from the relevant exception vector
It may also set the interrupt disable flags to prevent otherwise unmanageable nestings of exceptions.
If the processor is in THUMB state when an exception occurs, it will automatically switch into ARM state when the

PC is loaded with the exception vector address.


Action on Leaving an Exception(离开异常模式的几个动作)
On completion, the exception handler:
1. Moves the Link Register, minus an offset where appropriate, to the PC. (The offset will vary depending on the
type of exception.)
2. Copies the SPSR back to the CPSR
3. Clears the interrupt disable flags, if they were set on entry


ARM处理器的7种工作模式以及内部寄存器分析

ARM 有7个基本工作模式: User : 非特权模式,大部分任务执行在这种模式 FIQ :   当一个高优先级(fast) 中断产生时将会进入这种模式 IRQ :   当一个低优先级(normal)...
  • qq_32220231
  • qq_32220231
  • 2016-09-24 17:03:33
  • 1220

浮点寄存器

浮点寄存器
  • typecool
  • typecool
  • 2010-07-20 10:22:00
  • 2260

ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

ARMv7处理器各个模式之间是如何切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?...
  • qianlong4526888
  • qianlong4526888
  • 2014-05-29 11:50:41
  • 2972

浅谈CPSR程序状态寄存器

浅谈CPSR程序状态寄存器 首先给出其各个位的定义如下: (CPSR,SPSR)访问指令 ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程...
  • dayancn
  • dayancn
  • 2016-05-10 11:02:49
  • 1389

x86 系列 CPU 内存寻址模式总结

by adie  June 23, 2013, 6:12 p.m. 说明:      S16 表示 16 位段寄存器    P16 表示 16 位的普通寄存器, 立即数, 结果为 16 位...
  • fivedoumi
  • fivedoumi
  • 2016-01-10 20:32:38
  • 1430

深入了解CPU结构——寄存器

1.什么是寄存器       所谓寄存器(register),它是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻...
  • coredoor
  • coredoor
  • 2013-02-27 16:51:02
  • 1199

CPU中的寄存器

寄存器是CPU中的一个重要组成部分,它是CPU内部的临时存储单元。寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据...
  • u012110719
  • u012110719
  • 2015-05-13 10:19:56
  • 811

CPU模式学习总结

CPU 模式 大部分CPU 至少都有两种CPU 模式。CPU 模式也称为特权级,它会根据CPU 的工作模式限制可以执行的 操作。CPU 模式中,全部指令可以无限制执行的模式称为内核...
  • bcbobo21cn
  • bcbobo21cn
  • 2016-06-03 18:11:58
  • 672

BIOS工程师手边事--SMM模式

一,SMM概念及特色      1,基本概念        SMM是Intel在386SL之后引入x86体系结构的一种CPU的执行模式。加上SMM,X86 CPU支持四种工作模式。分别是:实模式,保...
  • zhao_longwei
  • zhao_longwei
  • 2015-11-14 21:59:36
  • 2537

TMS320C55x的寄存器

1.累加器A0~A3    协助D单元的算术逻辑单元(ALU),乘加单元(MAC)以及移位器里的数据计算。    C55x的CPU包括4个40位的累加器AC0、AC1、AC2、AC3    ...
  • App_12062011
  • App_12062011
  • 2012-08-06 09:22:21
  • 5667
收藏助手
不良信息举报
您举报文章:CPU模式(mode)、状态与寄存器
举报原因:
原因补充:

(最多只允许输入30个字)