Home > Tutorial > Lesson 3 |
|
算術加算ADDAと算術減算SUBAがデータを符号付整数として計算するのに対して,論理加算ADDLと算術減算SUBLはデータを符号無整数とみなして演算を行います. データを16進表現のまま,加減算すると考えればよいでしょう.
算術加減算と論理加減算では,オーバーフローの扱いが異なります. ADDAとSUBAでは,結果が-32768〜+32767に収まらない場合に,OFが1になります. 一方,ADDLとSUBLでは,結果が0〜+65535に収まらない場合にOFが1になります.
論理加算には,アドレス参照型の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
論理減算にも,アドレス参照型の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