|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stmfd sp!, {r0-r3, lr} 【属于8中寻址方式中的“堆栈寻址”】7 b6 X$ l5 P0 _' a4 A
9 W5 w6 ~/ [ t5 i
. Z8 K# |) ~# O) m+ g' Q0 x
- 上面这句ARM汇编指令的伪代码如下
- //SP指针地址变化过程
- SP = SP - 4×4; //4个寄存器,每个4个字节,该语句得到运算后的SP地址
- address = SP; //将运算后的地址赋给临时地址变量address
- //寄存器赋值给内存地址的赋值过程
- for i = 0 to 2
- Memory[address] = ri; //将r0、r1、r2赋给内存有小到大的地址
- address = address + 4; //地址添加4后,将lr赋给最高的地址
- Memory[address] = lr;* b, a( S9 O" ?9 p$ A& d
4 s$ m9 b4 \. t
5 G& q# G3 ^, S0 s) L/ H5 k5 x% t' _$ ^! z
SP栈指针指向的变化
/ ?9 c* E9 k I' T0 Z
1 @$ B B5 I% O! d* k4 X& C: X" ]8 \; ~# J$ v u+ E
( \& l8 I0 @& n7 X* ?
8 Y# u* {0 [" o+ K& c t! \* v& i# w: b' n, C( L* O
% Y) r" h6 \3 O
# `; q' s) e- o' v/ y0 g# C' J- [3 X# h3 o: c
% N1 L4 D& L! }; u9 G0 W5 @ |
|