なぜARMのスタックポインタはここにインクリメントされるのですか?

K

kel8157

Guest
ARMはsnippletが関数の引数を渡すためにスタックを使用して説明して対処。 2つのレジスタをスタックし、2つが引き出されにプッシュされ、人はその後撤回スタックにプッシュされます。これは、スタックポインタは、現在でバランスが取れているようです。ことは、引数が何を意味するかを "失う"のですか? [コード];; StackEg。引数を渡すとスタックからの結果を受け取るように、これは、スタックがどのように使われるかを示しています。 、このルーチンに入る前に、2つの引数がプッシュされ、終了時に、単一の結果は、それらを置き換えます。 ; stackEg STMFD(SP)、{R0、R1};!引数BL stackSubを保存;!ルーチンLDMFD(sp)を呼び出して、{R0};結果のお知らせのADD SP、SP、#8; '失う'引数が... ... 。stackSub LDMFD(SP)、{R4、R5};!引数を取得... 、いくつかの処理を行います... STMFD(SP)、{R2};!結果は、MOV pc、リンクを保存します。リターン[/コード]
 

Welcome to EDABoard.com

Sponsor

Back
Top