|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
stmfd sp!, {r0-r3, lr} 【属于8中寻址方式中的“堆栈寻址”】
* [6 v2 [( C" S' M8 \5 v2 d
6 n9 l- K# r% ]2 ]4 j
6 J, J; `9 g8 {: i/ m$ S3 E- 上面这句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;& X$ E# T7 `5 L9 x$ |6 O) H; {8 M% g
o. |/ F8 _/ _2 [5 u7 ~
0 D* D t4 C+ \* m/ Q' N y- i" Y& X/ }3 w" i( |
SP栈指针指向的变化* F! ]9 o$ h, D7 V( U) B
0 A5 y5 r, O1 p
N! K. C) A1 w3 z ?$ e# Z1 ?1 Q) c2 |1 h/ G3 P
, h* x% S4 Q" f' S) q# m
1 ?% o, U: v; j. b4 h
5 b* j2 \: d) t2 y
; G- V+ v# D( E
, ~: A$ N8 K, \: e" M# r) G1 t* v& ^
|
|