Home > Tutorial > Lesson 3

2003.10.22

CASLU & COMETU

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


論理加算ADDLと論理減算SUBL

算術加算ADDAと算術減算SUBAがデータを符号付整数として計算するのに対して,論理加算ADDLと算術減算SUBLはデータを符号無整数とみなして演算を行います. データを16進表現のまま,加減算すると考えればよいでしょう.

算術加減算と論理加減算では,オーバーフローの扱いが異なります. ADDAとSUBAでは,結果が-32768〜+32767に収まらない場合に,OFが1になります. 一方,ADDLとSUBLでは,結果が0〜+65535に収まらない場合にOFが1になります.

ADDL命令 論理加算

論理加算には,アドレス参照型の2語長命令とレジスタ間で加算をする1語長命令があります.

(AA)と(BB)を論理加算してCCにしまうプロラムの例を2つ示します.

ADD1	START
	LD	GR1,AA
	ADDL	GR1,BB
	ST	GR1,CC
	RET
AA	DC	#0010
BB	DC	#0020
CC	DS	1
	END
ADD2	START
	LD	GR1,AA
	LD	GR2,BB
	ADDL	GR1,GR2
	ST	GR1,CC
	RET
AA	DC	#0010
BB	DC	#0020
CC	DS	1
	END

SUBL命令 論理減算

論理減算にも,アドレス参照型の2語長命令とレジスタ間で減算をする1語長命令があります.

(AA)から(BB)を論理減算してCCにしまうプロラムの例を2つ示します.

SUB1	START
	LD	GR1,AA
	SUBL	GR1,BB
	ST	GR1,CC
	RET
AA	DC	#0030
BB	DC	#0020
CC	DS	1
	END
SUB2	START
	LD	GR1,AA
	LD	GR2,BB
	SUBL	GR1,GR2
	ST	GR1,CC
	RET
AA	DC	#0030
BB	DC	#0020
CC	DS	1
	END