个人原创,转帖请注明来源:cnblogs.com/jailbreaker
iOS安全攻防必须掌握arm汇编,这里先简要介绍arm中寄存器。
这是第一篇帖子,简要说下arm的各个寄存器的功能。
R0-R3:用于函数参数及返回值的传递,调用函数的时候,参数先从R0依次传递
R4-R6, R8, R10-R11:没有特殊规定,就是普通的通用寄存器
R7:栈帧指针(Frame Pointer),相对与SP,R7就是栈底,在进入新一个栈帧之后先把原来的R7压栈,然后R7保存当前SP。
R9:操作系统保留
R12:又叫IP(intra-procedure scratch ), 要说清楚要费点笔墨,参见http://blog.csdn.net/gooogleman/article/details/3529413
R13:又叫SP(stack pointer),是栈顶指针
R14:又叫LR(link register),存放函数的返回地址。
R15:又叫PC(program counter),指向当前指令地址。
CPSR:当前程序状态寄存器(Current Program State Register),在用户状态下存放像condition标志中断禁用等标志的。
在其它系统状态中断状等状态下与CPSR对应还有一个SPSR,在这里不详述了。