Home > Tutorial > Lesson 3

2005.11.04

CASLU & COMETU

Lesson 3 ロード・ストア命令,および算術・論理演算命令


排他的論理和XOR

排他的論理和とは

まず,1ビットデータに対する排他的論理和は以下の表のようになります. つまり,同じ値の組み合わせでは結果は0,異なる値の組み合わせでは1になります.

XYX XOR Y
000
011
101
110

16ビットデータの排他的論理和

CASLUの排他的論理和OR命令は,上のような排他的論理和の演算を16ビットのデータに対して対応する桁同士で計算します.2進数で表すと例えば次のような演算です.

       (X)     = 0000 1111 0000 1111
       (Y)     = 0000 0000 1111 1111
   (X) XOR (Y) = 0000 1111 1111 0000

これを16進数で表現すると,次のようになります.

       (X)     = 0F0F
       (Y)     = 00FF
   (X) XOR (Y) = 0FF0

サンプルプログラム

排他的論理和XOR命令には,アドレス参照型の2語長命令とレジスタ間で排他的論理和を計算する1語長命令がありますが,書き方は他の演算と同じなので例は省きます.

(AA)をGR0に入れ,(BB)をGR1に入れ,(AA)と(BB)の排他的論理和をGR2に入れるプログラムを示します.(論理積のときのプログラムのANDをXORに変えただけです.)

XOR1	START
	LD	GR0,AA
	LD	GR1,BB
	LD	GR2,GR0
	XOR	GR2,GR1
	RET
AA	DC	#0F0F
BB	DC	#00FF
	END

サンプルプログラムの実行

このプログラムをWCASLUで実行して動作を確認しましょう. GR0とGR1の排他的論理和がGR2に求められているのがわかりますね.

(AA)と(BB)の値をいろいろ変えて実行してみてXOR命令の動作を理解しましょう.