| MOV 転送命令 <<L1R>>, <<L1>, <<L2>> |
【ニモニックとオペランド】
【機能】
Move
転送
【オプション】
なし
【命令フォーマットと表記法】
【解説】
この命令はソースオペランドsrcの内容をデスティネーションオペランドdestへ転送します。srcのサイズがdestのサイズよりも小さいときには、転送前にsrcの値を符号拡張します。destのサイズがsrcのサイズよりも小さく、srcの値をdestのサイズ内で符号付き整数として表せないときには、V_flagをセットします。
【フラグ変化】
【発生EIT】
RIE src [Sho/r], src [Gen/r], dest [Sho/w], dest [Gen/w]のアドレッシングモード違反
RIE sx = 11, sy = 11
【注意事項】
フォーマット
即値データの範囲
MOV :Z
:Q
:E
:I
:G 1 -128 -2,147,483,648 -2,147,483,648 ≦ ≦ ≦ ≦ src src src src src = ≦ ≦ ≦ ≦ 0 8 127 2,147,483,647 2,147,483,647
【使用例】
16ビット長の数値H'a76eを32ビットに符号拡張して(H'ffffa76e)、汎用レジスタR3の内容(H'000001b2)に加算します。加算結果(H'ffffa920)を実効アドレスとしてメモリから1バイトを読み出します。メモリから読み出したバイト長の数値(H'df)を32ビットに符号拡張して、R7へ転送します。命令の前後での値の変化は以下の通りです。
R1の値(32ビットデータ)をR3の内容で示されたロケーションのハーフワードへ転送します。srcの値がdestのサイズの範囲内で整数として表現できないので、V_flagをセットします。
![]()