MRS/MSR 指令操作 xPSR 寄存器
一、指令基础概述MRS、MSR是 ARM Cortex‑M 内核中唯一能够直接读写程序状态寄存器 xPSR的专用指令普通MOV/LDR/STR等数据传送指令无法访问 xPSR必须依靠这两条指令完成状态寄存器读写操作。1. MRS读状态寄存器到通用寄存器指令格式MRS Rd, xPSR ; Rd xPSR功能将 xPSR 寄存器完整数值拷贝至通用寄存器 RdR0~R15用于读取运算标志、中断状态、执行模式位等信息。2.MSR通用寄存器写入状态寄存器指令格式MSR xPSR, Rd ; xPSR Rd功能将通用寄存器 Rd 的值写回 xPSR实现手动修改状态标志位寄存器内部分硬件锁定位无法通过软件改写写入操作无效。二、xPSR 寄存器分段xPSR 由三段独立状态寄存器组成支持分段单独读写操作更精准APSR算术状态标志寄存器包含 N/Z/C/V/Q 运算结果标志软件可自由读写IPSR中断服务编号寄存器只读记录当前运行中断号MSR指令无法修改EPSR执行状态寄存器包含 Thumb 模式位、IT 条件块位关键位受硬件保护软件写入不生效。分段读写示例MRS R0, APSR ; 仅读取运算标志位 MSR APSR, R0 ; 仅修改运算标志不干扰中断、执行状态三、实操练习清除 xPSR [24]Thumb 模式位需求说明xPSR 第 24 位为 TThumb标志位xPSR[24] 1CPU 运行 Thumb 指令集Cortex‑M 内核上电默认模式xPSR[24] 0切换至 ARM 32 位指令集。重要硬件限制全系列 Cortex‑M 内核硬件仅支持 Thumb 指令若软件强制将 T 位清零CPU 会立即触发硬件异常HardFault本段代码仅用于汇编语法练习工程中不可实际使用。完整汇编代码分步写法MRS R0, xPSR ; 读取完整xPSR寄存器存入R0 MOV R1, #1 MOV R1, R1, LSL #24 ; R1 1 24生成掩码 0x01000000仅bit24置1 BIC R0, R0, R1 ; BICRn (~Op2)清零R0中第24位其余位保持不变 MSR xPSR, R0 ; 修改完成的数值写回xPSR更新状态寄存器代码逐行注释解析MRS R0, xPSR专用读状态指令获取当前全部状态标志为修改做准备。MOV R1, #1MOV R1, R1, LSL #24构造掩码仅第 24 位为 1其余比特为 0用于定位待清零的 T 位。BIC R0, R0, R1按位清除指令对 R0 和掩码取反后做与运算仅清除 bit24不改动其他标志位。MSR xPSR, R0将修改后的状态写回 xPSR完成对 T 位的清零操作。精简优化写法省去临时寄存器 R1利用立即数掩码直接操作代码更简洁MRS R0, xPSR BIC R0, R0, #(1 24) ; 直接使用立即数掩码清除bit24 MSR xPSR, R0四、MRS/MSR 使用核心约束访问 xPSR/APSR/IPSR/EPSR 仅支持 MRS、MSR普通数据传送指令编译报错IPSR 为只读寄存器执行MSR IPSR, Rx无任何效果EPSR 内 Thumb 模式位、IT 块控制位由硬件锁定软件写入无效写入 xPSR 后状态标志立即更新后续CMP/TST/ 条件分支指令可直接使用新标志特权模式可完整操作状态寄存器非特权线程模式下部分状态位存在写保护Cortex‑M 内核无法关闭 Thumb 模式强制清零 xPSR [24] 会触发硬件故障。五、指令英文全称记忆MRSMove to Register from Status从状态寄存器读至通用寄存器MSRMove to Status from Register从通用寄存器写入状态寄存器

相关新闻

SSM+Java毕设攻略:在线学习平台从选型到答辩全流程解析

SSM+Java毕设攻略:在线学习平台从选型到答辩全流程解析

毕设季又到了,每年这个时候我都能收到一堆类似的咨询:老师,SSM是不是已经过时了?在线学习平台做了会不会太简单?源码和论文怎么才能对上号?今天我就用“ssmjava2026年毕设软件工程在线学习平台”这个题目&a…

2026/10/18 4:54:35 阅读更多 →
CentOS 8.2 手动编译 libssh 0.9.5 实战指南

CentOS 8.2 手动编译 libssh 0.9.5 实战指南

1. 为什么在 CentOS 8.2 上要手动编译 libssh 0.9.5CentOS 8.2 自带的 libssh 版本停留在 0.9.4,这个版本在部分场景下存在几个让人头疼的问题:一是对某些新版本 OpenSSL 的兼容性不够顺滑,二是部分 SSH 服务端在密钥交换阶段会触发一些边缘 …

2026/10/18 4:54:35 阅读更多 →
MBA论文写作指南:8类AI工具全流程实测

MBA论文写作指南:8类AI工具全流程实测

你有没有见过这样的场景——某MBA学员白天在公司开完三个会,晚上十点打开论文文档,光标停在目录页一动不动,章节标题改了三个版本又全部删掉。我见过太多次,因为在职读MBA的人几乎没有整块的时间,毕业论文更像一场和碎…

2026/10/18 4:53:35 阅读更多 →

最新新闻

飞凌 OK3576-C 实测:Debian 13 上的八核 CPU、eMMC、GPU 和 NPU,实际表现怎么样?

飞凌 OK3576-C 实测:Debian 13 上的八核 CPU、eMMC、GPU 和 NPU,实际表现怎么样?

拿到一块嵌入式开发板,我一般会先确认系统能否正常启动和使用,再考虑跑分。芯片参数很好查,但装上 Debian 以后,软件包是否齐全、编译是不是够快、eMMC 读写会不会拖后腿,以及 GPU 和 NPU 能否真正运行程序&#xff0c…

2026/10/18 13:46:06 阅读更多 →
机器人会走路之后,行业开始争“大脑“

机器人会走路之后,行业开始争“大脑“

2026年,人形机器人的"身体"差距正在快速缩小。关节电机国产化率超过八成,整机价格两年下降七成,头部厂商的产线已经能以分钟级节拍下线产品。但一个让全行业尴尬的事实始终没有改变:机器人在标定好的工位上成功率可以接…

2026/10/18 13:46:06 阅读更多 →
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)

我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)

昨天定下做 Beyond Compare 的免费开源版 OpenCompare 后,评论区又有朋友提了 FTP 远端对比等新需求,我已经让 AI 员工收进需求池交给 Gemini 4 评估。 今天本来该直接让 Gemini 4 和 DeepSeek 开工写核心代码。但动手前,我突然好奇一件事&am…

2026/10/18 13:46:06 阅读更多 →
Spring Cloud Gateway实战:路由、断言、过滤器与跨域配置全解析

Spring Cloud Gateway实战:路由、断言、过滤器与跨域配置全解析

微服务做久了,几乎谁都绕不开这两个词:Spring Boot 和 Spring Cloud。我经常在面试里碰到候选人张口就能背“Spring Boot是基础框架,Spring Cloud是微服务全家桶”,但真让他落地一个服务网关的时候,却连路由怎么写、依…

2026/10/18 13:46:06 阅读更多 →
计算机组成原理|数据与文字的表示方法

计算机组成原理|数据与文字的表示方法

前言 在计算机硬件体系当中,所有信息都不能以我们人类熟悉的十进制数字、汉字、符号直接存在硬件里面。不管是数字计算、文本信息,最后全部要转换成为二进制比特串。第二章作为整本书承上启下的关键章节,一边衔接第一章计算机系统概述的硬件基…

2026/10/18 13:46:06 阅读更多 →
MySQL 定时 DDL 导致 mysqldump 备份失败:场景模拟、排查与优化建议

MySQL 定时 DDL 导致 mysqldump 备份失败:场景模拟、排查与优化建议

1. 问题背景生产环境中,MySQL 数据库每天凌晨 2 点执行定时 DDL 操作(如新增索引、修改表结构),随后触发 mysqldump 逻辑备份任务,但备份经常失败。本文通过模拟该场景,分析失败根因,并给出可落…

2026/10/18 13:45:06 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →