根据ATPCS规则,我们一般使用FD(FullDescending)类型的数据栈!所以经常使用的指令就有STMFD和LDMFD。这两个指令一般用于进行程序搬移等大规模操作前的cpu现场保护和操作结束后的现场恢复,属于非单一连续的压栈和出栈。
STMFD SP! ,{R0-R7,LR}
意义是:
SP = SP-9x4
ADDRESS =SP
for i = 0 to 7
memory[address] = Ri
address =address+4
memory[address] = LR
LDMFD SP! ,{R0-R7,LR}
过程算是STMFD的逆过程
结果