Home > Tutorial > Lesson 3

2003.10.22

CASLU & COMETU

Lesson 3 ロード・ストア命令,および算術・論理演算命令


LD命令とLAD命令の違い

以下のプログラムをWCASLUのCASLモードで実行してみましょう.

PRG	START
	LD	GR1,AA
	LAD	GR2,AA
	RET
AA	DC	4
	END

解説

WCASLUの標準的な設定で,プログラムを最後まで実行すると,以下のようになります.

GR1には4,GR2には37が入っています.GR1に4が入った理由はわかりますね.AA にはDC命令で定数4が定義されており,それがロード命令でGR1にロードされました.これが,GR1←(AA)という意味です.

一方,GR2の方は,LAD命令(ロードアドレス命令)なので,AAというラベルが何番地に割り当てられたかを調べて,AAに割り当てられているアドレスの値をGR2にロードします. この場合は,AAは002516番地に割り当てられているので,GR2には16進数で0025がロードされたのです.それを10進数で見ると,37というわけです. これが,GR2←AAという意味です.

ラベルに何番地が割り当てられるかはアセンブルの後で,メモリにプログラムをロードしたときに決まりますので,同じ LAD GR2,AA でもプログラムによってGR2にロードされる値は変わってきます.

上のプログラムをWCASLUのCOMETモードでも実行してみよう. 命令実行サイクルに着目すると,LAD命令が送出されたアドレスをそのままレジスタにロードしているのに対して,LD命令は送出されたアドレスで指定されるメモリの場所からデータを持ってきてレジスタにロードしていることがわかるはずだ.