[H8-ML(3247)] Cのビット演算とインラインアセンブラのトレードオフ
From: まつぞの <k-zono@xxxxxxxxxxxxxxxx>
Date: 2003年05月25日(日)10時59分58秒
平田さん、こんにちは。まつぞの です。

"Shouji Hirata" <shouji@xxxxxxxxxxxxx> wrote:

> 日立のCコンパイラ(というか、ヘッダーファイル)ではビットフィールドを多用して
> いるようですが何か処理系依存のメリットがあるのでしょうか?(たとえばCPUのビッ
> ト操作命令に展開されて、とても高速になるとか... 使ったことがないので) 

日立のヘッダファイルを見て、「ほほー、I/O レジスタのヘッダってこーかくのかー」
と思ってました(^^;;
# ビットフィールドもそうですが、union も PC/UNIX なアプリでは使ったことは
# ほとんどなかったので

> I/O空間のビット処理は &と|を駆使してCで書くか、速度や効率が問題になるのなら
> #asmで直接ビット処理命令を記述するほうがあとでソースを見るときも安心な気がし
> ます。

I/O空間のビット処理について
(a) &と|を駆使してCで書く
(b) #asmで直接ビット処理命令を記述する

の違い、特徴について教えていただけるでしょうか?

             長所              短所
(a) C    移植性がある?         遅い、大きい
(b) asm 速い、サイズが小さい     移植性が無くなる

# あれ、こうやって書くと、C のメリットが不明確なような(^^;

# 自分では、アセンブラがわかってないので(^^; bitclr, bitset, bittst ぐらいを
# GCC のインラインアセンブラで使うに留まっているのですが。。。

I/O空間のビット処理に限定した場合、どのような基準で C とアセンブラを
使い分けるものなのでしょうか?



スレッド概略
[3245(R)](起点)
 └[3246(U)]
   └[表示中]
     └[3262(1)]


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


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