arm汇编笔记
ARM模式是4字节,Thumb模式是2字节
ARM状态的指令长度是32位的,Thumb状态的指令长度是16位的(也可能为32位)
R7 系统调用号
SP Stack Point 栈顶指针
LR Link Register 函数返回地址
PC Program Counter 下一条指令地址
CPSR Current Program Status Registe 当前程序状态寄存器 其中存储了thumb、fast、interrupt、overflow、carry、zero和negative这些Flags标志位
标记 含义
N(Negative) 指令执行结果为负时置1
Z(Zero) 指令执行结果为0时置1
C(Carry) 加法有进位则置1否则置0,减法有借位则置0否则置1
V(oVerflow) 指令执行结果超出32位补码存储范围时置1
E(Endian-bit) 置0时使用小端序,置1时使用大端序
T(Thumb-bit) 置1时使用Thumb模式,置0时使用ARM模式
M(Mode-bit) 共5位表示处理器运行模式
J(Jazelle) 对于有的处理器,置位表示允许以硬件执行java字节码
假设我们用cmp指令来比较1和2,结果将为负,Negative标志位被置1。因为cmp指令执行一次隐式的减法操作,1-2=-1。然而,如果我们比较2和1(和刚才相反),减法操作不借位,Carry标志位被置1。如果我们比较两个相同的数,比如2和2,那么2-2=