; n$ l b: @. b% s X子程序使用R0~R3来传递参数。用R4~R11来保存局部变量,thumb使用R4~R7。R12记作IP,调用scratch寄存器。R13记作SP,用作数据堆栈指针。R14记作LR,用作保存子程序的返回地址。R15记作PC,是程序计数器。- h7 i, J% J4 H0 N& X' u
3 M" o/ o' T6 v7 g# J4 x5 i. U6.1.3数据栈使用规则' a8 h L, N! |7 B0 _ o$ }! z h0 n+ M
" ~" R' b/ v3 i, g9 S有四种堆栈方向:# ]( P; O5 _4 s$ s$ \2 r0 [$ M
! m% D8 U& q- H: [) w; X
FD、FA、ED、EA: ]* |- Y) w# k1 f3 E
; {! T- J: T m# PATPCS规定使用FD + \7 H7 D+ |- u8 o* O, B9 D 8 y% @' C6 T: N" E. x' ]4 B6.1.4参数传递规则 8 j5 j; S& W; G# c7 K- P+ D" y* I3 Q) f2 N# }# R. b
1、参数可变:参数不超过4,使用R0~R3,超过则将多的参数送到数据栈中保存6 f. f) K- ^5 J6 g5 B