算術加算と減算は、データを16ビットの符号付整数として計算する。CASL II
では加算と減算の命令が用意されているが乗除算は無い。
命令語 |
ADDA:
ADD Arithmetic
(add:加える arithmetic:算術) |
役割 |
符号有り整数の加算を行う命令 |
書式と内容 |
|
|
|
|
|
label |
ADDA |
r1,r2 |
|
r1
r1+r2 |
label |
ADDA |
r,adr[,x] |
|
r
r+(adr+[x])の内容 |
|
|
|
|
|
|
FR |
計算結果に応じて、変化する。 |
|
|
|
|
|
OF |
|
結果-32768または32767結果 |
結果が16ビットを超えたとき |
|
|
-32768結果32767 |
結果が16ビット以内 |
SF |
|
結果が負の場合 |
第15ビットが1 |
|
|
結果が正の場合 |
第15ビットが0 |
ZF |
|
結果がゼロの場合 |
全てのビットが0 |
|
|
結果がゼロ以外の場合 |
いずれかのビットが1 |
|
|
|
|
|
2個の16ビットの値を加算する命令である。16進数でも10進数でも正しく計算
できる。ただし符号付で計算を行うので、最上位の第15ビットは符号ビットを
表し、2の補数で表現される。
ADDA GR0,GR1 ;GR0←GR0+GR1
ADDA GR0,A ;GR0←GR0+(アドレスAの内容)
ADDA GR0,A,GR1 ;GR0←GR0+(アドレス[A+GR1]の内容)
ADDA GR0,=5 ;GR0←GR0+5
命令語 |
SUBA:
SUBtract Arithmetic
(subtract:引き算 arithmetic:算術) |
役割 |
符号有り整数の減算(引き算)を行う命令 |
書式と内容 |
|
|
|
|
|
label |
SUBA |
r1,r2 |
|
r1
r1-r2 |
label |
SUBA |
r,adr[,x] |
|
r
r-(adr+[x])の内容 |
|
|
|
|
|
|
FR |
計算結果に応じて、変化する。 |
|
|
|
|
|
OF |
|
結果-32768または32767結果 |
結果が16ビットを超えたとき |
|
|
-32768結果32767 |
結果が16ビット以内 |
SF |
|
結果が負の場合 |
第15ビットが1 |
|
|
結果が正の場合 |
第15ビットが0 |
ZF |
|
結果がゼロの場合 |
全てのビットが0 |
|
|
結果がゼロ以外の場合 |
いづれかのビットが1 |
|
|
|
|
|
二つのデータの引き算を行う。その他は、加算命令と同じ。
SUBA GR0,GR1 ;GR0←GR0-GR1
SUBA GR0,A ;GR0←GR0-(アドレスAの内容)
SUBA GR0,A,GR1 ;GR0←GR0-(アドレス[A+GR1]の内容)
SUBA GR0,=5 ;GR0←GR0-5
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年9月7日