3 データ転送命令

メインメモリーからレジスタに、あるいはレジスタからメモリーにデータを転 送する命令の使い方を示す。いずれの場合も、1回のデータの転送量は1ワード (16ビット)である。メモリーやレジスタの領域は複数あるので、その位置を指 定しなくてはならない。メモリーの場合は先ほど示した方法でアドレスを指定 する。レジスターの場合はその名前で転送場所を指定する。

3.1 レジスターへの転送(LD)

3.1.1 内容

役割
レジスターにデータを転送する。
LD:LoaD
書式
ラベル欄  命令コード欄 オペランド欄
label LD r1,r2
label LD r,adr[,x]

COMET IIでは、算術演算や論理演算は必ず汎用レジスター上で行われる 4。そのため、演算の対象となるデータを汎用レジスター に格納しなくてはならない。LD命令は、メインメモリーのあるアドレスのデー タを汎用レジスタにコピーする命令として使われる。そればかりではなく、 汎用レジスター間のコピーにも使われる。しかし、汎用レジスターからメイ ンメモリーや、メインメモリーからメインメモリーへのコピーはできない。 メインメモリーへのコピーはST 命令を使う。

語源は、英語の1oadです。loadのにはいろいろ意味がありますが、その中で' 読み込む'と意味で使われています。パソコンでアプリケーションを実行する とき、ハードディスクにあるプログラムをメインメモリーへ読み込むこともロー ドといいます。ネットでのファイルの受け渡しのことも、ダウンロードやアッ プロードと言う。

3.1.2

      LD  GR0,GR1   ;GR1の内容をGR0へコピー
      LD  GR0,A     ;ラベルAが示す番地の内容をGR0へコピー
      LD  GR0,A,GR1 ;(A+GR1)番地の内容をGR0へコピー
      LD  GR1,GR1   ;GR1の符号をチェック

3.2 メモリーへの転送(ST)

3.2.1 内容

役割
レジスターの内容をメモリーへ転送する。
ST:STore
書式
ラベル欄  命令コード欄 オペランド欄
label ST r,adr[,x]

ST命令は、LD命令とは逆に、汎用レジスタの内容をメインメモリの指定番地に コピーする。語源はSToreで、'備蓄する'などの意味がある。書式や機能は教 科書に書かれている通りである。

3.2.2

      ST  GR0,A     ;GR0の内容をメインメモリーのA番地へコピー
      ST  GR0,A,GR1 ;GR0の内容を(A+GR1)番地へコピー

3.3 アドレスの転送(LAD)

3.3.1 内容

役割
実効アドレスを汎用レジスターにロードする。
LAD:Load ADdress
書式
ラベル欄  命令コード欄 オペランド欄
label LAD r,adr[,x]

LD命令は、メインメモリーの指定した番地の内容(データ)を汎用レジスタにコ ピーする。一方、LAD命令は、その番地(実効アドレス)を汎用レジスタにコピー する。

実効アドレス(adr,[x])の指定に10進定数や16進定数を指定することにより、 直接、汎用レジスタに値を格納することができまる。そのため、汎用レジスタ に初期値を設定したり、制御変数の値を操作するときに使われ、非常に使い勝 手のある命令になっている。

3.3.2

      LAD  GR0,A      ;ラベルAの実効アドレスをGR0へコピー
      LAD  GR0,A,GR1  ;(A+GR1)をGR0コピー
      LAD  GR0,4      ;GR0の内容を4に設定
      LAD  GR1,0,GR2  ;GR2の内容をGR1へコピー
      LAD  GR1,3,GR2  ;(3+GR2の内容)をGR1へコピー
      LAD  GR1,1,GR1  ;GR1の値を1増加させる
      LAD  GR1,-1,GR1 ;GR1の値を1減少させる

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年9月7日


no counter