第二部 トロン仕様チップ命令詳細第ニ章 転送命令
LDM
転送命令 <<L1R>>, <<L1>>, <<L2>>

【ニモニックとオペランド】

LDM srcs, reglist

【機能】

Load multiple registers
複数データのロード

【オプション】

なし

【命令フォーマットと表記法】

【解説】

 この命令はメモリのsrcsを先頭アドレスとする領域からデータを複数のレジスタへロードします。ロードするレジスタはビットマップのレジスタリストreglistで指定します。reglistはsrcsの拡張部の後に配置します。reglistのビットマップ指定は以下の通りです。



 @SP+(スタックポップ)をsrcsに指定すると、小さい番号のレジスタから順にポップされ、最後に、SPがロードしたレジスタの数の4倍だけ増加します。他のアドレッシングモードでは、入手した実効アドレスがレジスタヘロードするメモリ領域の先頭アドレスを示します。いずれの場合も、メモリ中の低いアドレスにあるデータの方が小さい番号のレジスタへロードされます。
 LDM命令はロードしないレジスタにはメモリの領域を割り当てません。reglistのすべてのビットが0のときには、何も行われません。これはエラーとはなりません。

【フラグ変化】

【発生EIT】

RIE srcs [Gen-IRC/rx]のアドレッシングモード違反
RIE s = 1

【注意事項】

【使用例】



 16ビット長の数値H'1140を32ビットに符号拡張して(H'00001140)、汎用レジスタR7の内容(H'002d7200)に加えます。加算結果(H'002d8340)を先頭アドレスとする連続したメモリ領域から読み出した32ビットデータを、R1〜R3とR9〜R13へ逐次転送します。命令の前後での値の変化は次の通りです。