ARM32指令解析通用寄存器

举报
小道安全 发表于 2022/06/21 22:18:01 2022/06/21
【摘要】 ARM32指令解析通用寄存器
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。
但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。
但在任何时候,通用寄存器R14~R0、程序计数器PC、一个状态寄存器都是可访问的。
            未分组寄存器 R0 ~ R7,共8个;
            分组寄存器 R8 ~ R12R13 ~ R14
             R8 ~ R12:其中FIQ模式下有单独的一组 R8 ~ R12,共5个;另外 6种模式共用一组R8 ~ R12,共5个;总共10个;
            R13 ~ R14:其中USR和SYS模式(表格的第一列)共用一组R13 ~ R14共2个,另外5种模式下各有独自的一组R13 ~ R14共10个;总 共12个;
            程序计数器 PC 即R15,共1个;
      分组寄存器R13、R14
            1、寄存器R13通常做堆栈指针SP
          2、寄存器R14用作子程序链接寄存器(Link Register-LR),也称为LR,指向函数的返回地址。
图片
上图中其中模式的详解
usr(用户模式):ARM处理器正常程序执行模式。
fiq(快速中断模式):用于高速数据传输或通道处理
irq(外部中断模式):用于通用的中断处理
svc(管理模式):操作系统使用的保护模式
abt (数据访问终止模式):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
sys(系统模式):运行具有特权的操作系统任务。
und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
图片
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。