2019独角兽企业重金招聘Python工程师标准>>>

一共16个32bit寄存器,其中:

R0~R12: 通用寄存器reset后这13个寄存器内的值未定义

R0~R7: low registers, thumb中大多数指令只能方法low registers

R8~R12: high registers

SP: 堆栈指针 R13

物理上有两个堆栈指针:

MSP: Main SP, reset后使用MSP,MSP的初始化值从向量表中自动加载通过修改control寄存器切换到PSP

PSP: Process SP, reset后PSP的值未定义

PUSH和POP指令操作R13/SP,实际根据Control的设置不同操作MSP或者PSP,只能通过MSR和MRS来直接操作MSP和PSP

堆栈指针的最后两个bit总是0(4byte对齐),写这两个bit的动作无效。

LR:链接寄存器R14

LR用于存储子函数的返回地址,在函数返回时将LR加载到PC。

LR也用于异常/中断函数返回时提供返回机制码。

通常情况下LR的bit0是0,因为thumb是2字节对齐,不过一些指令需要将bit0置1,指示当前是在thumb状态下。

PC:PC指针R15

因为M0只有thumb状态,因此PC通常是2字节对齐的,但是用汇编的分支指令BX/BXL,为表示要分支到thumb区域,需要将bit0设置为1,否则处理器将尝试切换ARM状态而引起fault exception。

三个特殊寄存器:

xPSR: 状态寄存器将以下三个寄存器的信息集合到一起提供出来

APSR: 应用状态

N  负数标志

Z  0标志

C  进/借位标志

V  overflow标志

IPSR: 中断状态

显示当前的中断号

EPSR: 异常状态

T永远为1

PRIMASK:中断屏蔽寄存器

当设置为1时,除NMI和hard fault外其它中断全部屏蔽。

可以被MSR.MRS,CPS指令访问

CONTROL:

将bit1设置为1时选用PSP,0时选用MSP

转载于:https://my.oschina.net/lgl88911/blog/377819

Cortex-M0详解(2)--寄存器相关推荐

  1. 五、CPU详解、寄存器详解、标志寄存器详解

    控制器.运算器.寄存器组成CPU 控制器:领导 运算器:员工,计算数据 寄存器:寄存数据信息,在内存与运算器之间 硬盘运算速度<内存运算速度<寄存器运算速度 寄存器:(寄存器16位[寄存器 ...

  2. 寄存器(1)寄存器概念,x86寄存器种类说明及汇编代码详解

    寄存器(1)寄存器概念,x86寄存器种类说明及汇编代码详解 1. 什么是寄存器 1.1 概念 1. 什么是寄存器: 2. 寄存器作用: 1.2 通俗易懂理解寄存器 2. x86寄存器种类说明及汇编代码 ...

  3. ARM通用寄存器及状态寄存器详解

    关注.星标公众号,直达精彩内容 素材来源:https://blog.csdn.net/qq_34430371/article/details/125820927 整理:技术让梦想更伟大 | 李肖遥 笔 ...

  4. ARM 寄存器 详解

    From( ARM 寄存器详解 ):https://blog.csdn.net/sandeldeng/article/details/52954781 ARM 汇编基础教程:2.数据类型和寄存器:ht ...

  5. 寄存器间接寻址缺点_详解西门子间接寻址之地址寄存器间接寻址

    关于间接寻址分为存储器间接寻址和地址寄存器间接寻址,本文主要针对地址寄存器间接寻址进行详细讲解,关于存储器间接寻址可参见前面文章,链接如下: #详解西门子间接寻址之存储器间接寻址 [地址寄存器间接寻址 ...

  6. 【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解

    文章目录 一.题目简述 二.简述:初始化GPIO,点亮LED灯 三.工程文件模板的建立 四.使用寄存器点亮LED灯--代码部分 1.硬件连接设计 2.打开之前建立的工程模板 3.代码编写 4.硬件连接 ...

  7. 16位汇编语言第二讲系统调用原理,以及各个寄存器详解

    16位汇编语言第二讲系统调用原理,以及各个寄存器详解 昨天已将简单的写了一下汇编代码,并且执行了第一个显示到屏幕的helloworld 问题? helloworld怎么显示出来了. 一丶显卡,显存的概 ...

  8. 3.堆栈指针寄存器 SP 详解

    堆栈指针寄存器 SP 详解 堆栈是一种具有"后进先出"(LIFO---Last In First Out)特殊访问属性的存储结构.堆栈一般使用RAM 物理资源作为存储体,再加上LI ...

  9. STM32寄存器操作端口模式CRL/CRH详解

    STM32寄存器操作端口模式CRL/CRH详解 首先,在开始讲解前,大家请先看如下一段代码: #define SDA_IN_24c02(){GPIOB->CRH&=0XFFF0FFFF; ...

  10. Linux智能家居m0代码,看过来!智能家居4大模块详解

    原标题:看过来!智能家居4大模块详解 关注我们 做新生代程序员! (一)什么是智能家居: 智能家居可以理解为一个控制系统,通过物联网将家里的智能设备连接起来,通过手机控制,远程控制,自动控制,语音控制 ...

最新文章

  1. SAP 动态安全库存设置
  2. MFC实现获取鼠标位置的小程序
  3. iphone照片删掉又出现_iPhone手机相册无法加锁应该怎么办?
  4. 【Flink】Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务
  5. HDU2504 又见GCD【欧几里得算法】
  6. 解决图片三像素的问题
  7. hud android,Android 加载等待控件 ZFProgressHUD
  8. 驱动外挂的原理及检测手段(自瞄篇)
  9. 自由软件运动与GNU项目
  10. 【C语言 基础】函数的形参与实参
  11. 哪款蓝牙耳机耳朵不疼?久戴不疼的骨传导耳机
  12. 【树莓派】配置树莓派防火墙
  13. 数据库的备份与恢复(一)
  14. 如何将json数据并格式化—html
  15. 计算机表格中如何计算数据透视表,如何在EXCEL数据透视表中进行计算 |
  16. Error: Unknown command: cask
  17. android 常用机型尺寸_Android设备尺寸
  18. 周末交友好运气:请找中国张名记
  19. odb格式Linux,AD如何输出ODB++文件的格式?
  20. .dta matlab,声发射数据文件是.DTA文件格式,如何将这种文件格式转入到MATLAB分析软件中...

热门文章

  1. Atitit. 有限状态机 fsm 状态模式
  2. paip.不同目录结构哈的文件批量比较
  3. paip.php and or 语句用法作用
  4. 数据库服务器操作系统升级方案,PostgreSQL 数据库跨版本升级常用方案解析
  5. 毕设题目:Matlab图像检索
  6. 【图像增强】基于matlab GUI图像双边滤波【含Matlab源码 1492期】
  7. 【CVRP】基于matlab遗传算法求解带容量的车辆路径规划问题【含Matlab源码 1280期】
  8. 【三维路径规划】基于matlab多种算法无人机三维路径规划【含Matlab源码 300期】
  9. 人工智能ai算法_AI算法比您想象的要脆弱得多
  10. webpack3 css,webpack3之处理css文件