| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 21.ARM-V7架构 -> 正文阅读 |
|
[嵌入式]21.ARM-V7架构 |
运行模式 -User(USR):用户模式 Linux系统用户进程,资源访问受限 -System(SYS):系统模式 Linux内核,共用寄存器,资源自由访问 -IRQ:一般中断模式 硬件产生中断信号 -FIQ:快速中断模式 时间紧急的中断,高速信号的传输、采集 -Supervisor(SVC):管理模式 默认模式:系统初始化、软中断 -Abort(ABT):数据访问终止模式 非法访问地址或寄存器、段错误 -Undef(UND):未定义指令模式 程序跑飞、篡改 -Monitor:用于用户安全扩展模式 -Hyp:用于虚拟化扩展 寄存器组 通用寄存器 r0~r3:用来传递函数参数、暂存数据 r4~r11:用来保存被调用函数的局部变量,暂存数据 r12:记录函数调用过程中上一次sp指针的值 r13(sp):函数堆栈寄存器 r14(lr):记录函数返回地址 r15(pc):程序计数器 程序状态寄存器 cpsr:该寄存器包含运算标志位,中断禁止位、当前运行模式标志等一些状态位以及一些控制位 spsr:发生异常切换模式时,将cpsr复制到发生异常的模式下的spsr 系统寄存器 cp15协处理器、内存、缓存、中断 AMR常用汇编指令 汇编格式:
-label:标记 -instruction:具体汇编指令 -comment:注释内容 常用段名: -text:代码段 -.data:初始化的数据段 -.bss:未初始化的数据段 -.rodata:只读数据段 -.section:自定义段
常见伪操作: -.global:定义全局标号
-.align:字节对齐
寄存器间数据传输: mov:寄存器数据(或者是立即数)拷贝到另一个寄存器
mrs:读程序状态寄存器
mrc:读cp15协处理器 mrc:写cp15寄存器 内存与寄存器数据传输: -ldr:把内存数据(或者是立即数)加载到寄存器
-str:把寄存器数据写入到内存
压栈和出栈 push:把寄存器列表存入栈中
pop:从栈中恢复寄存器列表
跳转 -b:跳转到目标地址
-bl:跳转到目标地址,并把当前pc指针值保存在lr寄存器中
算数运算指令: -add:加法运算
-sub:减法运算
-mul:乘法运算
-udiv:除法运算
逻辑运算 -and:与
-orr:或
-bic:位清除
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:34:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |