MC6800のプログラミングテクニック(5) 8bit/16bit混在時の加減算(2)

BASICMASTER, 昔のパソコン

前回(MC6800のプログラミングテクニック(4) 8bit/16bit混在時の加減算(1) )は、加算を検討したので、今回は減算。8bit – 8bit = 16bit の計算である。

まずは unsigned同士 の場合。

この場合は、両方とも0拡張なので、まず引かれる数を0拡張しておいて、引き算すれば良い。


	ldb 0,x
	clra
	subb 1,x
	sbca #0

楽勝である。では、signed – signed はどうしたら良いか。素直にやると符号拡張とpush/pullの連続になるので非効率的だ。

signedはbgeで良い

前回同様、bge一発である。モトローラ偉い。


	ldb 0,x
	clra
	subb 1,x
	bge L01
	deca
L01: