[H8-ML(2264)] Re: 例外処理でのスタックポインタ
From: FUJIHARA Keiichi <keiichi@xxxxxxxxxxxxx>
Date: 2002年10月06日(日)17時31分22秒
藤原です。

This message is reply to K.miyamae - san
(Subject was : [H8-ML(2263)] Re:  例外処理でのスタックポインタ)

Message-ID: <001201c26d0b$f43e8100$0101a8c0@dellal12>
in Sun, 6 Oct 2002 16:41:50 +0900 ...

> >基本的には、最初偶数に設定すると、奇数になることはありません。
> サブルーチン内でのローカル変数の必要バイトサイズが奇数でも、
> SPは偶数になるように調整されるのでしょうか(C言語で)?
> 基本的でないときは、どのような場合ですか?

C言語ではスタックはうまく偶数境界に合わせられるようですね。
C言語レベルではスタックは表には出てこないので、調整のしようが
ないですから。

基本的でない場合とは、自分でスタック上に変数を確保する時など
ですね。間違って奇数サイズの領域を確保してしまうとか。

> 
> >この時の基本的なテクニックとして、変数はすべてスタック上に確
> >するというのがあります。
> >・・・(途中省略)
> > このときに、基本的には「サブルーチンで使う変数の大きさ」だけ
> >スタックポインタから引き算して、そこに変数を確保します。
> 
> staticを使用しなければ自動的にスタックにエリアに確保さ
> れるのでこのようなこのとは不要なのですよね。

C言語では大丈夫ですね。C言語ではもう一つ再帰呼び出しが可能なこと
が保証されているので、(static でない)ローカル変数は、呼び出しごと
に確保されるようになっています。


-- 
_/ -- Last 16257 hours until ATHENS 2004 Olympic Games (06 Oct @394) -
_/ FUJIHARA Keiichi
_/ E-Mail : keiichi@xxxxxxxxxxxxx <or> nagi@xxxxxxxxxxxxxxx
_/ URL    : http://www.keiichi.fujihara.name/
--------------------------------------------+----- Luna Phase 29.42 --
PGP FingerPrint = 7CC3 4F95 8CC7 87D3 7178  C348 CD65 7F08 D68F 69F6


スレッド概略
[2260(R)](起点)
 └[2263(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]