前言
工作已有一段时间。反汇编的任务也基本完成,告一段落。前两天逆向了一个bin文件,深深感觉自己若真要吃这碗饭依然是不够格的。借此回顾arm汇编一些基础知识,也希望给各位在学习的同学有所帮助。
ARM基本概念
ARM 是 RISC 架构(RISC, 精简指令集),多数指令单周期完成,采用32位加载存储体系架构。
大多数ARM核都实现以下两种指令集:
32-bit ARM 指令集
16-bit Thumb 指令集
Jazelle cores 能够执行 Java 字节码,最新的ARM核实现了 Thumb-2指令集。
小补充:x86 — CISC, 复杂指令集
指令集 架构 soc
ARMV4T ARM7 s3c44b0
ARMV5TE ARM9 s3c2410/s3c2440
ARMV6 ARM11 s3c6410
ARMV7
ARMV8 cortex-A,高大尚领域(多媒体)
-R,高实时领域中
-M,以单片机的价格实现32bit处理能力
stm32
(1) 三级指令流水线
多图预警!!
ARM7 使用三级流水线
ARM9 使用五级流水线
ARM11
cortex-a: 10多级流水线
(2) ARM编程模型
2.1 ARM有7种工作模式:
1、SVC (管理模式) : 处理器复位后进入该模式;执行软中断指令(SWI)后进入该模式
2、FIQ (快速中断模式) :发生高优先级中断时进入该模式
3、IRQ (中断模式) :发生低优先级中断时进入该模式
4、ABORT (终止模式) :用于处理非