读(load):
LDR(4byte) 寄存器,[RAM的地址]
如果是[寄存器,#4],意思就是寄存器的值加4
LDRH(2byte)
LDRB(1byte)
//地址外加中括号为RAM的地址
//地址不加中括号为CPU的寄存器地址
写(store):
STR 寄存器,[RAM的地址]
加(add):
ADD R0,R1,R2//即R0 = R1+R2
减(sub):
SUB sp ,sp,#0x192//sp = sp- 192
入栈(push):
PUSH {R3,LR}//把R3,LR的值写入RAM,位置由SP指定
//PUSH操作时低位寄存器保存在RAM的低地址,高位寄存器保存在高位地址,每存入一个值SP地址减4
//R13别名SP表示栈,R14别名LR表示返回地址,R15别名PC表示当前指令地址
出栈(pop):
POP {R3,PC}
POP的本质是读SP内存,赋给R3,PC,R3 = [SP],SP += 4,PC = [SP],SP += 4