LD (load)[1or2語命令]

主な用途

2語命令

書き方

LD  gr,adr[,xr]

gr : 汎用レジスタ名(GR0〜GR7)

adr : 定数またはラベル

xr : 指標(インデックス)レジスタ名(GR1〜GR7)

カギ括弧 [ ] 内はオプション(省略可能)です。

LD GRn,LABEL

LABELが指しているアドレスの内容をGRnに複写する。

LD GRn,=m

GRnにmを代入。(COMETUの機械語には無いことに注意。機械語は上のラベルの場合と同じになる。)

LD GRn,LABEL,GRm

LABELが指しているアドレスにGRmの値を加えたアドレスの内容をGRnに複写する。

このとき、GRnの値により、各フラグが次のようにセットされる。

OF : 常に0
ZF : GRnの全てのビットが0のとき1、それ以外のときは0
SF : GRnの15ビット目(最大桁)の値

LD GR0,4352

4352(#1100)番地の内容をGR0に複写。GR0の値に応じてフラグがセットされる。

LD GR0,4352,GR1

4352にGR1の値が加算された値の番地に格納されている内容がGR0に複写される。GR0の値に応じてフラグがセットされる。

LD GR2,A,GR1

ラベル A の指している番地にGR1の内容を加えた番地の内容がGR2に複写される。GR2の値に応じてフラグがセットされる。

1語命令

書き方

LD  gr1,gr2

gr1,gr2 : 汎用レジスタ名(GR0〜GR7)

LD GRn,GRm

GRmの内容をGRnに複写する。GRmとGRnが同一レジスタでも構わない。

このとき、GRnの値により、各フラグがセットされる。内容は2語のLDと同じ。

LD GR0,GR1

GR1の内容がGR0に複写される。GR0の値に応じてフラグがセットされる。

LD GR2,GR2

GR2の内容がGR2に複写される。GR2の値には変化はないが、GR2の値に応じてフラグがセットされる。

リテラルの代入

4. 練習

次のプログラムの動きを確認しなさい。各レジスタ、フラグの値も確認すること。

;
; LD 命令のテスト
;
LDTEST0 START
        LD      GR0,A
        LD      GR1,B
        LD      GR2,A,GR1
        LD      GR3,GR2
        RET
A       DC      0
B       DC      2
C       DC      -7
        END

次の2つのプログラムの機械語を比較してみなさい。

LDTEST1 START
	LD	GR0,A
	RET
A	DC	5
	END    
LDTEST2 START
	LD	GR0,=5
	RET
	END