組み込みプログラマーこそ真の一流!その8at PROG
組み込みプログラマーこそ真の一流!その8 - 暇つぶし2ch68:48
08/02/27 11:24:40
> 組み込み用のコンパイラは、基本的にビット操作を見つけたら
> BSET/BCLR 系のビットON/OFF命令にしてくれるもの。

BSET/BCLR系のビットON/OFF命令って、オペランドで操作するビット位置
を指定するので、ほとんどのCPUアーキテクチャ(Z80,H8等)で複数ビットの
同時操作はできないんですが?

つまり、

#define STROBE 0x80
#define DEV_READ 0x40
PIO_A.OUTREG|=(STROBE|DEV_READ);

を論理演算命令ではなく、無理やりビット操作命令で展開すれば、

BSET  #7,PIO_A.OUTREG
BSET  #6,PIO_A.OUTREG となる。

それどころか、BSET/BCLR系のビットON/OFF命令自体を持っていない
アーキテクチャも多数あるし、配列要素に対するビット演算では、
対応するアドレッシングモードがなく、一旦汎用レジスタ経由で
ビット演算した後、書き戻すような複数ステップのコードしか生成
できない場合もある。

MOV  A,[X]
OR   A,#$C0
MOV  [X],A



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch