当前位置: 首页 > news >正文

嵌入式硬件第五弹——ARM(2)

(续接上篇)

1.7 立即数

立即数:直接写在指令里的数值,不需要从寄存器、内存里读取。

判断规则:

  • 数值范围0~0xFF(一定是);
  • 二进制最高位1与最低位1之间位数不超过8位;
  • 二进制序列凑够8位后右边偶数个0。

2. 汇编指令

2.1 指令

2.1.1 ldr & str

ldr

  • 功能1:向寄存器中加载非立即数
  • 功能2:将RAM中的数据加载到寄存器

str

  • 功能:将寄存器中的数据写入RAM指定空间中

2.1.2 bic & orr

bic: 将寄存器中的值某几位清零(取决于立即数哪几位为1)

orr:将寄存器中的值某几位值1(取决于立即数哪几位为1)

2.1.3 b指令

无条件跳转

  • bl:函数调用时,会将返回地址保存到lr寄存器
  • b:函数调用时,无法将返回地址保存到lr寄存器
  • bx:跳转到lr寄存器对应返回地址

汇编调用C语言传参时:

  • 如果参数少于或等于4个时,可以通过通用寄存器R0 - R3进行传参
  • 当参数超过4个时,必须通过栈进行传参(入栈保护 出栈恢复)
  • C语言函数返回的结果保存到R0寄存器

2.1.4 cpsr寄存器操作

1. 将cpsr寄存器中的值读到通用寄存器中R0

2. 将R0寄存器中低5位的值先清0 bic

3. 将R0寄存器中的低5位置设置为:10000 orr

4. 将R0寄存器中的值回写到CPSR寄存器

2.1.5 mrs & msr

mrs指令:读取某个特殊寄存器的值到通用寄存器

msr指令:将某个通用寄存器的值写入到特殊寄存器

2.2 栈的分类

满减栈(ARM默认使用)、空减栈、满增栈、空增栈

  • 减栈:入栈时sp向下移动,地址变小;
  • 增栈:入栈时sp向上移动,地址变大;
  • 满栈:sp指向栈顶有效数据;
  • 空栈:sp指向栈顶下一个空位置。
http://www.cnnetsun.cn/news/1506442.html

相关文章:

  • OpenClaw语音交互扩展:nanobot镜像接入Whisper实现语音控制
  • 跨端 UI 设计统一:多平台的视觉和谐
  • OpenClaw跨平台实战:Windows到Mac的Qwen3-32B配置迁移
  • 南医三院脊柱骨折诊疗:微创技术与专科方案解析
  • 废弃电脑改造计划:OpenClaw+GLM-4-7-Flash搭建24/7自动化终端
  • window环境使用git-filter-repo
  • OpenClaw+GLM-4.7-Flash:自动化社交媒体管理
  • 200KB轻量级HTML编辑器:KindEditor如何让网页内容创作变得简单高效?
  • Simple Runtime Window Editor:突破窗口分辨率限制的技术实现与应用指南
  • 4太5也5与4y
  • macOS Ventura 13命令行自动化管理:定时开机与关机高效攻略
  • 在QEMU中定制AST2600设备:从Machine定义到硬件模拟实战
  • 如何高效使用LeaguePrank:英雄联盟个性化展示的终极指南 [特殊字符]
  • 跨平台文件同步:OpenClaw+Qwen3.5-9B智能处理NAS文档归类
  • 横向对比:@zxing/library vs html5-qrcode,你的Web扫码方案该选谁?
  • [FLAC无损下载]技术突破:网易云音乐资源高效获取的架构解析与工程实践
  • OpenClaw多模型切换实战:百川2-13B-4bits与Qwen3-32B混合调用策略
  • 【工程心法】砸碎 Keil 的黑盒枷锁!告别 IDE 农耕时代,用 CMake + GCC 构筑嵌入式工业级自动化构建矩阵
  • OpenClaw学习助手实战:Qwen3.5-9B自动整理PDF笔记与生成思维导图
  • [LangGraph编译原理]从“状态图(StateGraph)”到“Actor模型(Pregel)”的转变
  • 4步焕新计划:老旧Mac设备升级macOS全攻略
  • 告别复杂配置!5分钟掌握OCAT:OpenCore图形化配置神器
  • 大气层系统技术指南:从需求分析到进阶拓展
  • 淄博养老服务中心哪家推荐
  • 如何快速掌握开源歌词工具:LyricsX 3步高效配置终极指南
  • 基于ZLMediaKit API的Java流媒体服务实战:从配置到核心功能封装
  • 5个超实用的小型分类数据集推荐:从Tiny ImageNet到花卉识别(附下载链接)
  • Source Han Serif CN:多场景字体解决方案的技术实践与价值挖掘
  • 量化模型精度补偿方案:百川2-13B-4bits在OpenClaw复杂推理中的表现提升
  • 开源项目文档架构设计:Git Submodule 实现文档与代码的优雅分离