スタックと割り込み ―― プログラムが動く仕組みを知ろう
●○● Column ●○●
スタック・ポインタとデータ格納先の正しい関係
本稿では,話を単純化して「スタック・ポインタの値が0xff10のときにデータの一時的な退避が必要になると,CPUは0xff10にデータを書き込む」と説明していますが,実際の書き込み処理はもう少し複雑なものとなります.
例えばV850という32ビット・マイコン(CPU)では,スタック・ポインタの指すアドレス-1番地~4番地に保存データをリトル・エンディアンで格納して,スタック・ポインタを-4移動します.つまり,現在のスタック・ポインタが0xff10の場合,次にデータを退避する場所は0xff0c~0xff0fとなります(図A).このような動作を,本稿では図4のように表現しているので,見比べてみてください.
図A スタック・ポインタとデータ保存先の詳細