[H8-ML(6018)] Re: H8 32ビット変数の使い方について
From: Mitani Hiroshi <mitani.hiroshi@xxxxxxxxxxxxxxxx>
Date: 2006年08月04日(金)11時21分32秒
こんにちは。

>> 1バイト配列をそれぞれシフトし、32ビットのデータにしたいのですが、

シフトする対象が32bitですか?

uLData = (unsigned long)Data[3];
uLData <<= 8;
uLData += (unsigned long)Data[2];
uLData <<= 8;
uLData += (unsigned long)Data[1];
uLData <<= 8;
uLData += (unsigned long)Data[0];

なら、明示的にシフトの対象が、32bitあることがわかりますね。
#H8は16bitマイコンなので、上のコーディングだと効率悪そうですが。

一般に、どういうニモニックに落ちるのか確認すれば、コンパイラが、
プログラムをどう解釈したか判りますので、一度見てみられては
いかがでしょうか。きっと勉強になると思います。

共用体を使うテクニックですが、SHだと、あまりよいコードを吐かな
かった記憶があります。最新のルネサスコンパイラだと改善されてい
るかもしれませんが。
--
三谷

スレッド概略
[6014(R)](起点)
 └[6015(U)]
   └[表示中]
     ├[6021(1)]
     └[6023(2)]


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


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