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位)