【構文】
(1)ADD src, dest
(2)ADD src, src2, dest
【オペレーション】
(1)dest = dest + src;
(2)dest = src + src2;
【機能】
(1)destとsrcを加算し、その結果をdestに格納します。
(2)srcとsrc2を加算し、その結果をdestに格納します。
【命令フォーマット】
|
|
|
|
|
|
(1)ADD src,dst
|
|
#UIMM:4
|
-
|
Rd
|
|
|
#SIMM:8
|
-
|
Rd
|
|
|
#SIMM:16
|
-
|
Rd
|
|
|
#SIMM:24
|
-
|
Rd
|
|
|
#IMM:32
|
-
|
Rd
|
|
|
Rs
|
-
|
Rd
|
|
|
[Rs].memex
|
-
|
Rd
|
|
|
dsp:8[Rs].memex
|
-
|
Rd
|
|
|
dsp:16[Rs].memex
|
-
|
Rd
|
|
(2)ADD src,src2,dst
|
|
#SIMM:8
|
Rs
|
Rd
|
|
|
#SIMM:16
|
Rs
|
Rd
|
|
|
#SIMM:24
|
Rs
|
Rd
|
|
|
#IMM:32
|
Rs
|
Rd
|
|
|
Rs
|
Rs
|
Rd
|
|
注 | 弊社の「RXファミリ アセンブラ」では、ディスプレースメントの値(dsp:8、dsp:16)は、サイズ拡張指定子が“.W”または“.UW”のときは2の倍数、“.L”のときは4の倍数を指定してください。dsp:8には、サイズ拡張指定子が“.W”または“.UW”のとき0〜510(255×2)が、“.L”のとき0〜1020(255×4)が指定できます。dsp:16には、サイズ拡張指定子が“.W”または“.UW”のとき0〜131070(65535×2)が、“.L”のとき0〜262140(65535×4)が指定できます。命令コードには、1/2、1/4した値が埋め込まれます。 |
【フラグ変化】
条件
C:符号なし演算のオーバフローが発生したとき“1”、それ以外のとき“0”になります。
Z:演算後のdestが0のとき“1”、それ以外のとき“0”になります。
S:演算後のdestのMSBが“1”のとき“1”、それ以外のとき“0”になります。
O:符号付き演算のオーバフローが発生したとき“1”、それ以外のとき“0”になります。
【記述例】
ADD #15, R2
ADD R1, R2
ADD [R1], R2
ADD [R1].UB, R2
ADD #127, R1, R2
ADD R1, R2, R3
|