Home > Tutorial > Lesson 3 |
|
以下のプログラムを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命令は送出されたアドレスで指定されるメモリの場所からデータを持ってきてレジスタにロードしていることがわかるはずだ.