3 CASL IIのプログラムの書き方

3.1 コーディングの約束

コーディングとはプログラムを記述する作業のことである。ここでは、CASL IIのプログラムの書き方の約束を示す。

CASL IIのプログラムの1行は、ラベル欄と命令コード欄、オペランド欄、注釈欄と機能毎 に欄が分かれている。具体的には、図1のようにである。

各欄はFORTRANのように桁数で分けられているわけではない。機能別の欄の区 切りは、1 個以上の空白である。したがって、

となる。

図 1: CASL IIのプログラムの書き方
\includegraphics[keepaspectratio, scale=0.8]{figure/description_code.eps}

3.2 機能別の各欄の説明

3.2.1 ラベル欄

ラベルは、その記述する位置からFORTRANの文番号にも似ている。あるいは、 いままでの例でもわかるように、変数名の役割を果たしている。実際、プログ ラムでは、FORTRANの文番号や変数名のような使われ方をする。実際には、CASL IIでは、 それはアドレスを表す。そのアドレスは、それ引き続く命令に従い、次のように決まって いる。 ラベルがアドレスを表すことが理解できれば、簡単である。常識通りに解釈 すればよいのである。

教科書にも書かれている通り、ラベルの記述の約束は

である。

重要なポイント

以前学習した通りアセンブラのプログラムは、主記憶装置(メイ ンメモリー)の中に格納されているデータを処理(いろいろな演算)する。ま た、プログラムの命令も主記憶装置に格納されている。主記憶装置に格納さ れているデータや命令にアクセスする場合、主記憶装置のアドレスを指定する ことになる。したがって、アセンブラでは、アドレスが重要になり、プロ グラマーは意識しなくてはならない。

高級言語の場合、アドレスに関してはコンパイラーが勝手に処 理をする。ありがたいものである。例えば、FORTRANで変数を使った場合、プ ログラマーがその変数のアドレスに注意を払う必要はない。これは、コンパイ ラーが変数名とアドレスの関係の表を持っており、それに従い、上手にマシン語 に変換してくれているのである。

アセンブラのでは、コンパイラーの代わりにプログラマーが変 数とアドレスの関係を考えなくてはならない。そんなに難しくない。

3.2.2 命令コード欄

この欄には、アセンブラ命令(非実行文)、機械語命令、マクロ命令を書く。 教科書にも書かれている通り、記述の約束は以下の通りである。

3.2.3 オペランド欄

この欄には、命令のオペランドを記述する。オペランド(operand:被演算子) とは、命令の対象となるアドレスやレジスタ、データのことである。CASL II では汎用レジスタ番号、記号番地(ラベルのこと)、あるいは絶対番地、文字、 整数がオペランドとなる。その記述方法は、教科書に書かれているように、以 下の通りである。

3.2.4 注釈欄

行中にセミコロン";"を書くことのより、それから行末まで注釈(コメン ト)として扱うことができる。FORTRANの注釈文と同じで、プログラムの実行に 何ら影響を与えない。プログラムの内容を分かりやすくするために書くことが 多い。あるいは、その行を実行させないときに行頭にセミコロンを";"を 追加してデバック作業を進めることがある。


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年11月15日


no counter