Home > Tutorial > Lesson 3 |
|
まず,1ビットデータに対する論理和は以下の表のようになります. つまり,0と0の組み合わせでは結果は0,その他の組み合わせでは1になります.
X | Y | X OR Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
CASLUの論理和OR命令は,上のような論理和の演算を16ビットのデータに対して対応する桁同士で計算します.2進数で表すと例えば次のような演算です.
(X) = 0000 1111 0000 1111 (Y) = 0000 0000 1111 1111 (X) OR (Y) = 0000 1111 1111 1111
これを16進数で表現すると,次のようになります.
(X) = 0F0F (Y) = 00FF (X) OR (Y) = 0FFF
論理和OR命令には,アドレス参照型の2語長命令とレジスタ間で論理和を計算する1語長命令がありますが,書き方は他の演算と同じなので例は省きます.
(AA)をGR0に入れ,(BB)をGR1に入れ,(AA)と(BB)の論理和をGR2に入れるプログラムを示します.(論理積のときのプログラムのANDをORに変えただけです.)
OR1 START LD GR0,AA LD GR1,BB LD GR2,GR0 OR GR2,GR1 RET AA DC #0F0F BB DC #00FF END
このプログラムをWCASLUで実行して動作を確認しましょう. GR0とGR1の論理和がGR2に求められているのがわかりますね.
(AA)と(BB)の値をいろいろ変えて実行してみてOR命令の動作を理解しましょう.