ルネサス
SMOVF
順方向ストリング転送
Strings MOVe Forward
【構文】
【オペレーション】
unsigned char *R1, *R2;
unsigned long R3;
while ( R3 != 0 ) {
*R1++ = *R2++;
R3 = R3 - 1;
}
注
R3に0を設定して実行したとき、本命令は無視され、レジスタおよびフラグは変化しません。
【機能】
-
R3で指定されたバイト数分、R2で示される転送元番地からR1で示される転送先番地へ、アドレス加算方向にストリング転送を行います。
命令実行時は、R2で示される転送元番地からデータプリフェッチが行われる場合があります。ただし、R3で指定された範囲を超えるデータプリフェッチは行いません。プリフェッチされるデータサイズについては、各製品のハードウェアマニュアルを参照してください。
R2で示される転送元番地からデータプリフェッチされる範囲にR1で示される転送先番地が含まれない条件で使用してください。
命令終了時のR1、R2は、最後に転送したデータの次の番地を示します。
命令実行中に割り込み要求があった場合は、命令途中で転送を中断して割り込みを受け付けます。割り込みルーチンからの復帰後、中断されていた処理を継続して実行します。本命令を使用する際には、割り込み時、R1、R2、R3とPSWを退避/復帰してください。
【命令フォーマット】
構文
処理
サイズ
コードサイズ
(バイト)
B
2
【フラグ変化】
フラグ変化はありません。
【記述例】