第二章 転送命令 |
転送命令はソースオペランド(src)の内容をデスティネーションオペランド(dest)へ転送します。srcの内容は転送命令によって変化しません。srcのサイズがdestのサイズと異なるときには、転送前にdestのサイズに合わせてsrcの値を調整します。srcのサイズがdestのサイズよりも小さいときには、srcの値をdestのサイズに合わせて拡張します。拡張は命令のオペレーションに応じて、符号拡張またはゼロ拡張が行われます。srcのサイズがdestのサイズよりも大きいときには、srcの下位ビットから、destのサイズに等しいビット数をdestへ転送し、srcの残りのビットは無視します。この場合、srcの値がdestのサイズ内で整数として表現できない(したがって転送値がsrcの値と異なる)ときには、V_flagをセットします。
以下に例を示します。
転送命令にはMOV、MOVU、PUSH、POP、LDM、STM、MOVA、PUSHAがあります。
MOVAとPUSHAはその他の転送命令とは異なり、ソースオペランドの値ではなくソースオペランドの実効アドレスを転送します。