Subsections
以前から述べているように,プログラムは命令とデータから構成させれる.このうちデー
タを書き表すために,
DCが使われる.これは Define Constantの略で,定数を定義
するように思えるが,実際はメモリーを確保して初期化しているだけである.したがって,
定数と言いながら,メモリーの内容は書き換え可能である.
DC:Define Constant
書式
|
|
|
[label] |
DC |
n |
[label] |
DC |
#h |
[label] |
DC |
'文字列' |
[label] |
DC |
ラベル名 |
[label] |
DC |
定数[,定数,定数,] |
- ラベル名は,確保された領域の先頭のアドレスである.
- ラベルは無くても良いが,データへのアクセスが煩雑になる.通常,ラベルを付
けて,それを使ってデータにアクセスする.
- オペランド欄に書かれるデータは,以下の場合に分けられる.
- 10進数の整数(n)
- 10進数整数のデータを定義する.CASL IIの場合,整数は16ビットで表される
ため,その範囲は-32768〜32767までである.これを超えた場合,その下
位16ビットがビットパターンに変換される.
- 4桁の16進数の正の整数(h)
- 16進数整数のデータを定義する.その範囲は#0000〜#FFFF
までである.
- 文字列
- 文字列のデータを定義する.CASLでは1文字を16ビット(1ワード)で表現す
るが,JIS X 0201では8ビットで表現する.このことより,上位8ビットは
0とし,下位8ビットで表現することになっている.以前学習したとおりで
ある.
- アポストロフィ「'」をデータとして使いたい場合は,それを2つ続
けて「''」のように書く.そうすると,1ヶのアポストロフィがデー
タとして定義される.
- ラベルは,第一文字目のデータが格納されたアドレスを示す.
- ラベル名
- アドレス定数とよばれるもので,記号番地であるラベル名をアドレスの
絶対番地メモリーに格納できる.指定されたラベル名の絶対番地がメモ
リーに格納される.
- カンマ区切りの複数のデータ
- カンマで区切って,いくつでも定数を書くことができる.
- 非実行文なので,フラグレジスタは変化しない(関係ない).
実際の例を以下に示す.特に説明するまでも無いだろ.
AA DC 100
BB DC -3
CC DC #0027
DD DC 'AT<&'
EE DC AA
FF DC 10,20,'AB',#FFFF
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2005-12-21