RACW
|
16ビット符号付きアキュムレータ丸め処理
|
RACW
|
Round ACcumulator Word
|
【構文】
(2) | RACW src, Adest 【V2.01.00以降】 |
【オペレーション】
tmp = (signed long long) ACC << src;
tmp = tmp + 0000000080000000h;
if (tmp > (signed long long) 00007FFF00000000h)
ACC = 00007FFF00000000h;
else if (tmp < (signed long long) FFFF800000000000h)
ACC = FFFF800000000000h;
else
ACC = tmp & FFFFFFFF00000000h;
signed 73bit tmp73;
tmp = (signed 72bit) Adest << src;
tmp73 = (signed 73bit) tmp + 0000000000080000000h;
if (tmp73 > (signed 73bit) 00000007FFF00000000h)
Adest = 0000007FFF00000000h;
else if (tmp73 < (signed 73bit) 1FFFFFF800000000000h)
Adest = FFFFFF800000000000h;
else
Adest = tmp & FFFFFFFFFF00000000h;
【V2.01.00以降】
【機能】
- | アキュムレータの値に対してワードサイズで丸めを行い、その結果をアキュムレータに格納します。 |
- | RACW命令は、以下のような手順で実行されます。 |
処理1. アキュムレータの値を、srcで指定したビット数分(1ビットまたは2ビット)、左シフトします。
処理2. 1ビットまたは2ビットの左シフトを行った64ビットの値に従って、アキュムレータの値が変化します。
【命令フォーマット】
|
|
|
|
|
(1) RACW src
|
#IMM:1(注)
(IMM:1 = 1〜2)
|
−
|
|
(2) RACW src, Adest
【V2.01.00以降】
|
#IMM:1
(IMM:1 = 1〜2)
|
A0, A1
|
|
注 | 弊社の「RXファミリ アセンブラ」では、即値(IMM:1)は、1〜2を指定してください。命令コードには、-1した値が埋め込まれます。 |
注 | Adestには、ACC0の場合A0、ACC1の場合A1を指定してください。 |
【フラグ変化】
フラグ変化はありません。
【記述例】
RACW #1
RACW #2
RACW #1, A1
RACW #2, A0
|