文章目录

  • 一、ARM 处理器工作模式
  • 二、ARM 架构模型

一、ARM 处理器工作模式


参考 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 ) 博客 , ARM 处理器有 777 种工作模式 ;

ARM 处理器的 七种 工作模式 :

  • 1.User ( 用户模式 usr ) : 普通的应用运行的模式 ;
  • 2.FIQ ( 快速中断模式 fiq ) : 该模式下支持数据的高速传输 ;
  • 3.IRQ ( 普通中断模式 irq ) : 该模式常用于处理普通的中断 ;
  • 4.Supervisor ( 管理模式 svc ) : 操作系统使用的一种保护模式 , 本节 BootLoader 就是需要设置这种 svc 模式;
  • 5.Abort ( 终止模式 abt ) : 实现虚拟内存 和 存储器保护 ;
  • 6.Undefined ( 未定义模式 und ) : 硬件协处理器 的 软件仿真支持, 当执行的指令***处理器不支持***, 那么会进入该模式;
  • 7.System ( 系统模式 ) : 该模式用于运行具有特权的操作系统任务, ARMv4 以上的架构才有;

二、ARM 架构模型


ARM 架构中寄存器数量很多 , 有 161616 个 ;

另外多了 标志寄存器 CPSR , 程序状态寄存器 SPSR ;

程序状态寄存器 SPSR 在中断模式下使用 ;

R0 ~ R3 这 444 个寄存器是参数寄存器 ;

x86 架构中 , 参数传递都是通过堆栈传递的 ;

ARM 架构中 , 如果参数小于 444 个参数 , 传输传递是通过寄存器传递的 , 如果大于等于 444 个参数 , 则 R3 寄存器记录一个栈地址 , 对应的栈中就后续参数值 ;

R4 ~ R12 这 888 个寄存器是变量寄存器 ,

ARM 中有 373737 个寄存器 , R0 ~ R7 是所有模式通用的寄存器 ;

上述 777 种模式下 , 寄存器的的个数与种类都是不同的 ;

每个模式对应的寄存器参考 :

如果不做嵌入式开发 , 用户模式 和 系统模式 是主要需要学习的模式 , Android 逆向中 , 主要涉及这两个模式 ;

R13 ( SP ) 是堆栈指针寄存器 ;

R14 ( LR ) 是返回地址寄存器 ;

R15 ( PC ) 是指令寄存器 , 指向下一条要执行的指令 ;

Android 逆向中使用到的寄存器有

  • 参数寄存器 R0 ~ R3
  • 变量寄存器 R4 ~ R12
  • 堆栈指针寄存器 R13 ( SP )
  • 返回地址寄存器 R14 ( LR )
  • 指令寄存器 R15 ( PC )
  • 标志寄存器 CPSR

【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )相关推荐

  1. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Archit ...

  2. 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 )

    一. 处理器工作模式相关介绍 1. 处理器模式简介 (1) 处理器工作模式分类 (2) 处理器不同工作模式区别 (3) Linux 系统运行的模式 (4) 特权模式 说明 (5) 异常模式 (6) 系 ...

  3. ARM处理器工作模式

    一.ARM体系的CPU有以下7种工作模式: 1.用户模式(usr):正常的程序执行状态 2.快速中断模式(fiq):用于支持高速数据传输或通道处理 3.中断模式(irq):用于普通中断处理 4.管理模 ...

  4. 嵌入式ARM设计编程(三) 处理器工作模式

    文章和代码已归档至[Github仓库:hardware-tutorial],需要的朋友们自取.或者公众号[AIShareLab]回复 嵌入式 也可获取. 一.实验目的 (1) 通过实验掌握学会使用ms ...

  5. 最右android工资,Android逆向之旅—最右App的签名算法解析(ARM指令学习不舍篇)

    一.逆向分析 本文继续来看最后一篇介绍ARM指令学习,之前的两篇文章已经详细介绍了ARM指令的基础知识,本文继续把剩下来的所有都介绍完了,首先一定要去看前面的基础篇和进阶篇,不然我都很难保证你看这篇文 ...

  6. Cortex M3处理器工作模式及中断过程

    来自::http://blog.csdn.net/ffgamelife/article/details/6947300 1.      工作模式 线程模式(Thread mode):处理器复位或异常退 ...

  7. Android逆向之旅--「最右」签名算法解析(ARM指令学习恶心篇)

    一.前言 今天开始我们后续会开展三篇左右的arm指令学习,因为之前一直都有同学和我说有没有详细的arm指令分析,这个之前的确一直没有好的样本,有的人可能说可以用自己写的C代码然后反编译so来学习,那样 ...

  8. 【Android 逆向】Frida 框架 ( Frida 2 种运行模式 | Frida 12.7.5 版本相关工具下载地址 | 在 Android 模拟器上运行 Frida 远程服务程序 )

    文章目录 一.Frida 2 种运行模式 二.Frida 12.7.5 版本相关工具下载地址 三.在 Android 模拟器上运行 Frida 远程服务程序 1.启动雷电模拟器 2.上传 frida- ...

  9. android 5.0.1 libdvm.so,Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)

    本文作者:i春秋作家HAI_ZHU 0×00 前言 市面上的资料大多都是基于Dalvik模式的dump,所以这此准备搞一个ART模式下的dump. Dalvik模式是Android 4.4及其以下采用 ...

最新文章

  1. 查看linux 服务器有多少CPU
  2. tcpip详解--端口号
  3. 19、Java Swing JToolBar:工具栏组件
  4. css背景图根据屏幕大小自动缩放
  5. Java线程面试题 Top 50
  6. 关于”算法工程师/机器学习工程师”的笔试和面试总结
  7. JavaSE——类集(上)(Collection、List、Iterator、forEach)
  8. JBoss5开发web service常见问题
  9. arp协议、arp应答出现的原因、arp应答过程、豁免ARP详细解答附图(建议电脑观看)
  10. java 日期for循环_java for循环的时候增加循环体的长度是不是不太好的?
  11. 【VS开发】MFC修改Opencv namedWindow的风格
  12. LAMP让开放源代码软件更安全 PHP是例外
  13. delphi10.2.1下载地址
  14. M3U8下载,直播源下载,FLASH下载(二)-ffmpeg安装手册(linux)
  15. 快播案:程序正义、盗版和色情
  16. QGIS获取OSM地图矢量数据
  17. 四阶段课堂总结解决问题
  18. Prometheus监控kubernetes
  19. 分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式
  20. C++中unique函数作用及使用条件

热门文章

  1. C语言 基础60题(5)
  2. nagios+cacit 整合(rpm)
  3. VC回调函数定义和使用
  4. VM虚拟机常见问题之五--网络相关的问题
  5. 计算机网络第七版(谢希仁著)课后习题答案
  6. 在django中使用django_debug_toolbar
  7. 集合嵌套存储和遍历元素的示例
  8. 曼哈顿距离(坐标投影距离之和)d(i,j)=|X1-X2|+|Y1-Y2|.
  9. fiddler抓取https请求
  10. jQuery Layer 弹层组件