平田さん、こんにちは。まつぞの です。
"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 とアセンブラを
使い分けるものなのでしょうか?