| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> ARM内核寄存器 和 基本汇编语言 -> 正文阅读 |
|
[嵌入式]ARM内核寄存器 和 基本汇编语言 |
要讲 ARM 汇编语言,必须得先了解ARM的内核寄存器,内核处理所有的指令计算,都需要用到内核寄存器,所以ARM汇编里面指令大都是基于寄存器的操作。 文章前推荐韦东山老师的单片机核心视频,视频可以在韦东山老师官网里面找到:百问网 一、ARM内核寄存器内核寄存器与外设寄存器: 内核寄存器与外设寄存器是完全不同的概念。 在我的另一篇博文:FreeRTOS记录(三、FreeRTOS任务调度原理解析_Systick、PendSV、SVC) 1.1 M3/M4内核寄存器对于M3/M4而言:
R14 ,连接寄存器(Link Register)
R15,程序计数器(Program Count)
其中程序状态寄存器 XPSR: 程序状态寄存器,该寄存器由三个程序状态寄存器组成 1.2 A7内核寄存器对于 A7 而言: 需要注意的一点就是,对于A7而言R15,程序计数器(Program Count)(有待确认):
A7内核的程序状态寄存器 CPSR: 1.3 ARM中的PC指针的值ARM7: 推荐一篇文章,是关于ARM7内核的(此部分转自此篇博文): 关于ARM的PC指针(什么时候PC+8,PC+4,PC-4,PC-8) ARM处理器采用3级指令流水线: 条指令的取指,然后第三条。 第一条指令: 当第一条指令译码完成以后,此时PC=PC+8 所以第一条指令开始执行时,PC值已经加了8 所以必须记住这个前提,在arm中,每次该指令执行时,其实这时的PC值是PC=PC+8 A7:(待更新) M3/M4:(待更新) 二、汇编语言ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing),具体说明在下面这篇博文5.4小结有过说明: STM32的内存管理相关(内存架构,内存管理,map文件分析) 2.1 汇编基础最初,ARM公司发布了两类指令集:
比如: 那么在汇编中是如何在 ARM 指令 和 Thumb 指令之间切换呢:
对于A7、ARM7、ARM9 内核而言它们支持 16位的Thumb 指令集 和 32位的 ARM 指令集 对于M3、M4 内核而言它们支持的是 Thumb2 指令集,它支持16位、32位指令混合编程 对于内核来说使用的是 ARM指令集 还是 Thumb指令集,就是在 XPSR 和 CPSR 在M3/M4中, XPSR 寄存器的 T(bit24):1表示 Thumb指令集 在A7中 CPSR中的:T(bit5) :控制指令执行状态,表明本指令是 ARM 指令还是 Thumb 指令 2.2 汇编指令 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 1:34:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |