Home > Tutorial > Lesson 2

2003.10.16

CASLU & COMETU

Lesson 2 CASLUプログラムの書き方と実行のトレース


アセンブラ命令

アセンブラ命令は,アセンブラに指示を与えるための命令です. START,END,DS,DCの4種類で,このうち,STARTとENDはアセンブル後COMETUの機械語に変換されると,姿を消し,メモリを占有しません.DSとDCは普通は何語かのメモリを占有することになります.


START

通常以下のように書き,プログラムの先頭を定義します.サブルーチンの場合は,ここで書かれたラベルが,他のプログラムで参照する入り口になります.

ラベル名   START

以下のようにオペランドを付けて書くこともでき,この場合オペランドに書いたラベル名はそのラベルが書かれた行が実行開始番地になります.

ラベル名  START   ラベル名

END

ENDはプログラムの終わりを明記します.1つのプログラムの単位が,STARTとENDで囲まれることになります.


DC

DC命令は,定数で指定したデータを(連続する)語に格納します. DCはDefine Constant (デファイン コンスタント)の略です.defineは「定義せよ」,constantは「定数を」と言う意味になります.

定数には10進定数,16進定数,文字定数,アドレス定数の4種類があります.基本的には,以下のような形式をとります.

ラベル名  DC  定数

10進定数の定義

以下のように,10進数で数値をそのまま書きます.

AA	DC	15
BB	DC	-256

ここで定義された10進数は1語の2進データとして格納します.ただし,-32768〜32767の範囲にないときは,その下位16ビットを格納します.負の数は2の補数です.

16進定数の定義

以下のように,4桁の16進数の前に#をつけて記述します.

AA	DC	#012F
BB	DC	#FF29

文字定数の定義

以下のように,シングルコーテーション'で囲んで文字列を記述します.

AA	DC	'abc'
BB	DC	'ABCDEF'

文字列の文字数(>0)分の連続する領域を確保し,最初の文字は第1語の下位8ビットに,2番目の文字は第2語の下位8ビットに.・・・と順次文字データとして格納します.各語の上位8ビットには0のビットが入ります.

文字コードはアセンブラの仕様26ページの1.3文字の符号表を参照してください.aの文字コードは006116になるので,文字列'abc'を定義した上のDC命令ではAA番地から3語に以下のような値が入ることになります.

AA#0061
#0062
#0063

ちなみに,これは以下のように書いても意味は同じです.

AA      DC      'a'
        DC      'b'
        DC      'c'

DS

DS命令は指定した語数の領域を確保します.DSは Define Strage(デファイン ストレージ)の略で,define「定義せよ」,storage「記憶域を」と意味です.

以下のように書きます.

ラベル名  DS  語数(10進数≧0)

語数を0とした場合,領域は確保しませんが,ラベルは有効となります.