転送命令(機械語)

機械語において、転送命令とは、最も単純化した場合、あるプロセッサレジスタ(以降、レジスタ)に、別のレジスタの値もしくは即値をコピーする命令のことです。

転送命令のオペランド

転送命令では、少なくとも以下の二つのオペランドを指定します。

・コピー先のレジスタを指定するオペランド

・コピー元のレジスタや即値を指定するオペランド

転送命令の実行の流れ

機械語の命令の実行を基礎として、転送命令は、以下のように実行されます。

レジスタAにレジスタBの値をコピーする場合

1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの書き換えが有効にされる。(詳細は、レジスタの指定を参照)

2. 「レジスタBを指定するオペランド」を制御信号として、レジスタBの値がデータバスに出力される。

3. クロックの立ち上がりエッジでレジスタAにデータバスの値が書き込まれる。

レジスタAに即値をコピーする場合

1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの書き換えが有効にされる。(詳細は、レジスタの指定を参照)

2. 「即値を指定するオペランド」の値がデータバスに出力される。(詳細は、即値の指定を参照)

3. クロックの立ち上がりエッジでレジスタAにデータバスの値が書き込まれる。

メインメモリからレジスタへの転送

あるレジスタにメインメモリの値をコピーしたい場合は、ロード命令を利用します。

レジスタからメインメモリへの転送

あるメモリアドレスにレジスタの値をコピーしたい場合は、ストア命令を利用します。

即値をメインメモリへ転送

あるメモリアドレスに即値をコピーしたい場合は、転送命令で即値を適当なレジスタにコピーした後、ストア命令でそのレジスタの値を任意のメモリアドレスにコピーします。

メインメモリからメインメモリへの転送

あるメモリアドレスにメインメモリの値をコピーしたい場合は、ロード命令でメインメモリの値を適当なレジスタにコピーした後、ストア命令でそのレジスタの値を任意のメモリアドレスにコピーします。