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

【嵌入式汇编基础】-ARM架构基础(五)

ARM架构基础(五)

文章目录

  • ARM架构基础(五)
    • 8、AArch32 执行状态
      • 8.9 堆栈指针
      • 8.10 帧指针
      • 8.11 链接寄存器
      • 8.12 过程内调用寄存器 (IP, r12)
      • 8.13 当前程序状态寄存器
      • 8.14 应用程序状态寄存器
        • 8.14.1 直接访问 APSR
        • 8.14.2 NZCV标志位
        • 8.14.3 Q 标志
        • 8.14.4 GE 标志
      • 8.15 执行状态寄存器
        • 8.15.1 指令集状态寄存器
        • 8.15.2 IT 块状态寄存器 (ITSTATE)
      • 8.16 字节序状态
      • 8.17 模式位和异常屏蔽位

8、AArch32 执行状态

8.9 堆栈指针

程序使用堆栈指针 (SP, r13) 来保存对当前线程正在使用的内存临时区域(称为堆栈)顶部的引用。该寄存器可以轻松高效地存储和访问堆栈中的临时数据(例如局部变量),以及在函数开始和结束时高效地存储和恢复寄存器和返回地址。

8.10 帧指针

帧指针 (FP, r11) 跟踪当前活动的堆栈帧,函数使用该帧来存储其局部变量。使用 FP 相对加载和存储可以高效地执行局部变量的读写操作。

8.11 链接寄存器

链接寄存器 (LR, r14) 用于存储函数的返回地址。在 A32 和 T32 指令集中,函数都是使用 BL 或 BLX 指令调用的。这些指令将 PC 设置为被调用函数的第一条指令,并隐式地将 LR 设置为该函数完成后的返回地址,即紧接着 BL 或 BLX 指令的指令地址。在 A32 中,函数完成后,通常会使用 BX LR 或类似指令将返回地址从 LR 复制回 PC 返回到调用者,从而允许函数调用者从中断处继续执行。

8.12 过程内调用寄存器 (IP, r12)

在给定函数中,过程内调用寄存器 (IP, r12) 与任何其他通用寄存器类似。它的名称源于编译器和链接器在实现过程内“蹦床”时将 r12 用作临时寄存器的方式。这种蹦床最常见的例子是通过

http://www.dtcms.com/a/332095.html

相关文章:

  • c/c++实现 TCP Socket网络通信
  • Docker存储卷备份策略于VPS服务器环境的实施标准与恢复测试
  • Linux 进程与内存布局详解
  • RecyclerView 拖拽与滑动操作
  • HQA-Attack: Toward High Quality Black-Box Hard-Label Adversarial Attack on Text
  • 多列集合---Map
  • 【无标题】设计文档
  • Cache的基本原理和缓存一致性
  • 基于大语言模型的爬虫数据清洗与结构化
  • 可信搜索中的多重签名
  • 系统日常巡检脚本
  • 将mysql数据库表结构导出成DBML格式
  • Qt---Qt函数库
  • ActionChains 鼠标操作笔记
  • # Vue 列表渲染详解
  • AI智能体|扣子(Coze)搭建【批量识别发票并录入飞书】Agent
  • FTP 服务详解:原理、配置与实践
  • 8月14日星期四今日早报简报微语报早读
  • [激光原理与应用-273]:理论 - 波动光学 - 光是电磁波,本身并没有颜色,可见光的颜色不过是人的主观感受
  • 时钟 中断 day54
  • close函数概念和使用案例
  • rustdesk 开源遥控软件
  • 云服务器运行持续强化学习COOM框架的问题
  • 低配硬件运行智谱GLM-4.5V视觉语言模型推理服务的方法
  • C#WPF实战出真汁01--项目介绍
  • linux设备驱动之USB驱动-USB主机、设备与Gadget驱动
  • 【Java|第十九篇】面向对象九——String类和枚举类
  • AI更换商品背景,智能融合,无痕修图
  • Java中加载语义模型
  • Windows bypassUAC 提权技法详解(一)