ARM基础知识

ARM处理器模式:

模式可以理解为 工作环境。

异常模式:SVC管理模式、 FIQ 快速中断模式 、 IRQ中断模式、Abort中止、Undef 未定义模式;

正常模式:System系统模式、 User 用户模式

1-6 模式称为特权模式,7为非特权模式。

PC机里面有一个运行级别的概念。

某些程序运行在这个模式下,另一些程序在另一个模式下。

ARM状态:

执行arm指令。Pc值字对齐(32位)代码量变小。

Thumb状态:

执行thumb指令。Pc值半字对齐(16位)。

ARM处理器有37个32位长的寄存器。

通用寄存器:

参与运算,保存运算结果。(凡是运算涉及到的寄存器都是通用寄存器)

Add r0, r1,r2 (r1+r2 = r0)

R0~R15 在用户模式与系统模式下

R13 :堆栈指针寄存器 stack poiter 堆栈指针。(sp)

R14:链接寄存器(记录上一次记录的位置)

R15:程序计数器pc,永远指向取值的的指令地址。

代码区 、 数据区、 bss段。

内存里面一般不能没有栈。栈的位置与代码放入内存的顺序相反。

把2、3、5等的地址放入其地址。

状态寄存器:

通用寄存器:

Usr/sys :

Ro – R15

Irq:

状态寄存器:

Cpsr current program state register。当前程序状态寄存器。

以上总结下,总共37个寄存器。

汇编代码:

伪指令+指令

数据传送指令:MOV + 立即数、寄存器、寄存器移位

比较指令:CMP 15种条件。

(logic shift right 逻辑右移R4位)

原文地址:https://www.cnblogs.com/zhuxuekui/p/4440419.html