Subsections

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で,'備蓄する'などの意味がある.書式や機能は教科書に書かれている通り(p.42).

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
2005-12-21


no counter