ARM中的STM和LDM指令详解 STM和LDM的主要用途是现场保护、数据复制、参数传递等,其模式有8种,如下: 注:前面4种用于数据块的传输,后面4种用于堆栈操作 (1)IA每次传送后地址加4 (2)IB每次传送前地址加4 (3)DA每次传送后地址减4 (4)DB每次传送前地址减4 (5)FD满递减堆栈 ...
ARMv4中STMLDM指令详解www.arm.com 4.2.8. LDM and STM Load and Store Multiple registers. Any combination of registers r0 to r15 can be transferred in ARM state, but there are some restrictions in Thumb state. See also PUSH and POP. Syntax op{addr_mode}{cond} Rn{!}, reglist{^} where...
这里的sp = sp-4,是因为处理器是32位的ARM,所以每次压一次栈SP就会移动4个字节(32位)。 假设此时SP地址为: 0x40000460,由前面解释伪代码可得下图(蓝色填充区为地址): 蓝色标注的SP为执行指令前的SP地址,红色标注的SP是执行指令后的SP地址,由此看出STMFD指令是向下压栈的。 LDMFD 指令 LDMFD Rn{!},{reglis...
ARM中LDM,STM指令解析 这里比较下容易混淆的四条指令,已经在这4条指令的混淆上花费了很多 精力,现在做个小结,LDR,STR,LDM,STM这四条指令,关于LDM和 STM的说明,见另外一个说明文件,说明了这两个文件用于栈操作时的注意事 项。(1)LDR:L表示LOAD,LOAD的含义应该理解为:Loadfrommemory intoregister。下面这条语句...