3、ARM寄存器组织

news2024/12/26 0:01:15

ARM寄存器组织

1、寄存器

概念

  • 寄存器是处理器内部的存储器,没有地址

作用

  • 一般用于暂时存放参与运算的数据和运算的结果

分类

  • 包括通用寄存器、专用寄存器、控制寄存器
    在这里插入图片描述

2、ARM寄存器

在这里插入图片描述
注:

  • 在某个特定的模式下,只能使用当前模式下的寄存器。一个模式下的特有寄存器在其他模式下不可以使用

专用寄存器

R15(PC,Program Counter)

  • 程序计数器,用于存储当前取址指令的地址

R14(LR,Link Register)

  • 链接寄存器,一般有一下两种用途
    • 1、执行跳转指令(BL和BLX)时,LR会自动保存跳转指令下一条指令的地址。程序需要返回时,将LR的值复制到PC即可实现。
    • 2、产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下一条指令的地址,异常处理结束后将LR的值复制到PC即可实现。

R13(SP,Stack Pointer)

  • 栈指针,用于存储当前模式下的栈顶指针

CPSR寄存器

CPSR(Current Program Status Register)

  • 当前程序状态寄存器
    在这里插入图片描述

CPSR寄存器分为四个域

  • 1、[31:28]为条件域,用F表示
  • 2、[24:27]为状态域,用S表示
  • 3、[15:8]为预留域 ,用X表示
  • 4、[8:0]为控制域 ,用C表示

Bit[4:0]

  • [10000]:User
  • [10001]:FIQ
  • [10010]:IRQ
  • [10011]:Supervisor (SVC)
  • [10111]:Abort(ABT)
  • [11011]:Undef(UND)
  • [11111]:System(SYS
  • [10110]:Monitor

Bit[5]

  • [0]:ARM状态
  • [1]:Thumb状态

Bit[6]

  • [0]:开启FIQ
  • [1]:禁止FIQ

Bit[7]

  • [0]:开启IRQ
  • [1]:禁止IRQ

Bit[28]:V

  • 1、当运算器中进行加法运算且产生符号位进位时,该位自动置1,否则为0
  • 2、当运算器中进行减法运算且产生符号位借位时,该位自动置0,否则为1

Bit[29]:C

  • 当运算器中进行加法运算且产生进位时,该位自动置1,否则为0
  • 当运算器中进行减法运算且产生借位时,该位自动置0,否则为1

Bit[30]:Z

  • 当运算器中产生了0的结果该位自动置1,否则为0

Bit[31]:N

  • 当运算器中产生了负数的结果,该位自动置1,否则为0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么测试自动化测试?

什么测试自动化测试? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&a…

用Python判断是否为闰年并计算生肖年

1 问题 润平年以及生肖是新的一年到来我们应该了解的信息。那么如何利用python程序计算快速计算该年为什么年? 2 方法 利用if条件判断语句实现。 代码清单 1 year eval(input(请输入咨询的年份:))if (year % 4 0 and year %100 ! 0) or year % 400 0: print(…

递归视角下

def listSum(numbers): if not numbers: return 0 else: (f, rest) numbers return f listSum(rest)myList (1, (2, (3, (4,None))))total listSum(myList)print(total) while循环何时退出? 恐怕是while循环技巧所在,即选择恰…

4G模块驱动移植

一、4G模块概述 1、调试的模块型号是广和通的 NL668-EAU-00-M.2。 2、使用的接口是 M.2 Key-B。实际只用到了M2里的USB接口。 调试过程 以QMI_WWAN号方式进行说明,其他拨号方式也试过。最后以QMI_WWAN方式调通了,拨号成功了。 其他拨号方式因为现有文档…

上四休三,未来的期许

近日“少上一天班,究竟香不香”引发关注,英国媒体2月21日报道,一项全世界目前为止参加人数最多的“四天工作制”试验,不久前在英国取得了成功。很多人表示上过四天班之后,给多少钱也回不去五天班的时代了。 来百度APP畅…

【Vue入门】语法 —— 插值、指令、过滤器、计算属性、监听器

目录 一、模版语法 1.1 插值 1.1.1 文本 1.1.2 html解析 1.1.3 属性 1.1.4 表达式 1.2 指令 1.2.1 核心指令 1.2.3 动态参数 二、过滤器 2.1 局部过滤器 2.2 全局过滤器 三、计算属性 四、监听器 五、排座案例 小结:计算属性和监听属性的区别 一、模…

Linux ____02、Linux开关机、目录介绍、文件目录相关命令(常用命令)

Linux开关机、目录介绍、目录相关命令(常用命令) 一、Linux开关机二、目录介绍三、目录相关命令(常用命令)1、ls命令,列出目录内容2、cd命令,切换目录;pwd,查看当前工作路径3、mkdi…

fire-voc 火光 烟火 火灾 目标检测数据集

一年中最容易引发火灾的季节是在冬季,主要原因有这样几点。 1、秋冬季节,随着用火、用电、用气增加,加上天气干燥,棉花、木材 、衣物等物体内含有的水分也较低。2、秋冬季风力较大,一旦有火苗冒起就很容易随风蔓延,是火灾的高发期。3、春季也是火灾多发季节&#x…

malloc是如何实现内存分配的?

文章目录 前言一、malloc实现原理概括?二、brk() 函数与mmap()函数三、mmap实现原理普通读写与mmap对比mmap内存映射实现过程mmap 的适用场景 前言 在C和C中,malloc函数是用于动态分配内存的常用函数。本文将深入探究malloc函数的内存分配实现机制&…

背靠背 Nature 新方向 - 蛋白质结构家族图谱的“潘多拉魔盒”

NBT - Foldseek快速准确搜索结构相似的蛋白,AlphaFold蛋白质数据库提供了一个快速的搜索工具 AlphaFold的极限:高中生揭示人工智能在生物信息学挑战中的缺陷AlphaFold2开源了,不是土豪也不会编程的你怎么蹭一波? 对蛋白结构的大规模分析揭示了…

对抗网络爬虫:反爬虫技术与策略详解

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 在今天的互联网世界中&a…

机器学习入门与实践:从原理到代码

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 在本文中,我…

PDF编辑内容怎么做?这几个方法快来了解

PDF(便携式文档格式)是一种常用的文档格式,但有时我们需要对PDF文件进行编辑,那么小伙伴们知道PDF编辑内容怎么做吗?下面将介绍几种编辑PDF的方法以及注意事项。 1.使用手机编辑PDF文档 最近有个小伙伴说由于工作经常…

模拟实现C语言--strcpy函数

模拟实现C语言–strcpy函数 文章目录 模拟实现C语言--strcpy函数一、strcpy函数是什么?二、使用示例三、模拟实现 一、strcpy函数是什么? strcpy函数是将字符串中的内容复制到另一个字符串中使用的库函数 char* strcpy(char * destination, const char…

【LeetCode热题100】--15.三数之和

15.三数之和 注意:最后答案中不能包含重复的三元组 使用排序双指针 可以使用三重循环枚举三元组,但是需要哈希表进行去重操作,得到不包含重复三元组的最终答案,消耗量大量的时间和空间 对于不重复的本质,保持三重循环…

【Linux学习笔记】 - 常用指令学习及其验证(下)

前言:本文延续上一篇文章【Linux学习笔记】 - 常用指令学习及其验证(上)对常用的指令进行介绍和验证。 一、mv指令 (1)功能:用来移动文件或者将文件改名 (2)语法及验证&#xff1a…

【QT--使用百度地图API显示地图并绘制路线】

QT--使用百度地图API显示地图并绘制路线 前言准备工作申请百度地图密钥(AK)安装开发环境 开发过程新建项目ui界面GPSManager类主窗口Map 效果展示 前言 先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据CAN总线传…

OJ练习第177题——打家劫舍 IV(二分查找)

打家劫舍 IV 力扣链接:2560. 打家劫舍 IV 题目描述 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为…

人脸修复祛马赛克算法CodeFormer——C++与Python模型部署

一、人脸修复算法 1.算法简介 CodeFormer是一种基于AI技术深度学习的人脸复原模型,由南洋理工大学和商汤科技联合研究中心联合开发,它能够接收模糊或马赛克图像作为输入,并生成更清晰的原始图像。算法源码地址:https://github.c…

同步 -- 互斥锁

本篇文章基于Linux-6.5源码 建议:搭配Linux源码观看更佳 struct mutex {atomic_long_t owner;spinlock_t wait_lock; //自旋锁,该自旋锁的作用是保护后面的等待队列的原子性struct list_head wait_list; //等待队列 }; API接口 mutex_init 互斥锁初…