Subsections

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

2.1 コーディングの約束

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

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

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

となる.

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

2.2 機能別の各欄の説明

2.2.1 ラベル欄

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

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

である.

重要なポイント

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

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

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

2.2.2 命令コード欄

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

2.2.3 オペランド欄

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

2.2.4 注釈欄

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


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
2006-02-08


no counter