ARM汇编指令立即寻址寄存器寻址寄存器间接寻址变址寻址多寄存器寻址相对寻址堆栈寻址?堆栈寻址的命令LDMFA/STMFA、LDMEA/STMEA、LDMFD/STMFD、LDMED/STMED。?LDM和STM表示多寄存器寻址,即一次可以传送多个寄存器值。?LDM:一次装载多个,这里用来出栈。?STM:一次存储多个,这里用来入栈。?F/E表示指针指向的位置?F:full满堆栈,表示堆栈指针指向最后一个入栈的有效数据项。?E:empty空堆栈,表示堆栈指针指向下一个要放入的空地址。?A/D表示堆栈的生长方式?A:堆栈向高地址生长,即递增堆栈。?D:堆栈向低地址生长,即递减堆栈。?递增递减和硬件无关,这一般是由操作系统决定的。我们一般使用的是递减。LINUX是用递减堆栈。?所以?LDMFD SP!,{R1-R7,LR};将数据出栈,放入R1~R7,LR这8个积存器,同时SP自动更新。这是一个满递减堆栈。?STMFD SP!,{R1-R7,LR};将R1~R7,LR入栈,SP更新。满递减堆栈。跳转指令
ARM体系结构 来自淘豆网www.taodocs.com转载请标明出处.