MC6800のプログラミングテクニック(5) 8bit/16bit混在時の加減算(2)
前回(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:
ディスカッション
コメント一覧
まだ、コメントがありません