STMFD SP!,{R0-R7,LR} 的伪代码如下
SP = SP - 9×4;
address = SP;
for i = 0 to 7
Memory[address] = Ri;
address = address + 4;
address = SP;
for i = 0 to 7
Memory[address] = Ri;
address = address + 4;
Memory[address] = LR;
注意:ARM规定,sp始终是指向栈顶位置的,STM指令把寄存器列表中索引最小的寄存器存在最低地址,所以R0在最低地址,向上依次是R1,R2,...R7,LR。完成后SP指向保存R0的地址。