機械語において、転送命令とは、最も単純化した場合、あるプロセッサレジスタ(以降、レジスタ)に、別のレジスタの値もしくは即値をコピーする命令のことです。
転送命令では、少なくとも以下の二つのオペランドを指定します。
・コピー先のレジスタを指定するオペランド
・コピー元のレジスタや即値を指定するオペランド
機械語の命令の実行を基礎として、転送命令は、以下のように実行されます。
1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの書き換えが有効にされる。(詳細は、レジスタの指定を参照)
2. 「レジスタBを指定するオペランド」を制御信号として、レジスタBの値がデータバスに出力される。
3. クロックの立ち上がりエッジでレジスタAにデータバスの値が書き込まれる。
1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの書き換えが有効にされる。(詳細は、レジスタの指定を参照)
2. 「即値を指定するオペランド」の値がデータバスに出力される。(詳細は、即値の指定を参照)
3. クロックの立ち上がりエッジでレジスタAにデータバスの値が書き込まれる。
あるレジスタにメインメモリの値をコピーしたい場合は、ロード命令を利用します。
あるメモリアドレスにレジスタの値をコピーしたい場合は、ストア命令を利用します。
あるメモリアドレスに即値をコピーしたい場合は、転送命令で即値を適当なレジスタにコピーした後、ストア命令でそのレジスタの値を任意のメモリアドレスにコピーします。
あるメモリアドレスにメインメモリの値をコピーしたい場合は、ロード命令でメインメモリの値を適当なレジスタにコピーした後、ストア命令でそのレジスタの値を任意のメモリアドレスにコピーします。