[H8-ML(4641)] Re:H8/3052で浮動小数点演算がうまくできず困っています。
From: Sawaguchi Yuji <issho@xxxxxxxxxxxxxxxxxx>
Date: 2004年04月09日(金)02時00分38秒
澤口@一升金です。

Kazutaka さんの<20040408141110.30434@xxxxxxxxxxxxxx>から
>でもまさか実際にstaticとは.....
ちょっと Cygwin の gcc でアセンブラソースを吐かせてみました
ら、スタックには確保してます。でも、初期値として 0 を代入し
ていました。
で、明示的に static と宣言してやると・・・やっぱりスタックに
確保して 0 を代入してました。なんじゃぁ?
ちなみに、普通の関数内で宣言した static 変数は別セグメントに
確保され、static でなければスタック上に確保されて自動的には
0 で初期化されません。

>なるほどなるほど。でも、そういうCPUの場合の自動変数っていったいどうや
>って確保してたんでしょうね....。
>
>いや、その方法ってH8の時にもなんらかの参考(例えばメモリ確保に関しての
>ノウハウとか)にならないかなぁと思ったものですから(^_^;)。
その場合は、データ領域にポインタ変数をとるか、汎用レジスタを
一つ専用に使ってこれをスタックポインタ代わりにします。
要するに、データを格納してポインタをデクリメント(PUSH)
と、データを取り出してインクリメント(POP)動作をさせれば
よいわけです。PUSH、POP命令が使えないのでニモニック数が増えま
すが。
普通のCPUはスタックポインタが1つしかありませんので、複数の
スタックポインタを使う言語、例えば Forth などではこういうテク
ニックを使います。
スレッド概略
[4619(R)](起点)
 └[4637(U)]
   └[表示中]
     └[4642(1)]


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


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