Subsections

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

5.1 コーディングの約束

コーディングとはプログラムを記述する作業のことである.本節では,CASL IIのプログラムの書き方の約束を示す.FORTRANでもプログラムの書き方があっ たように,CASL IIでも約束がある.FORTRANでは各桁は,コメントのしるし(* or C)を書く欄(第1桁)や文番号を書く欄(第1〜5桁),継続のしるしを書く欄 (第6 桁),文を書く欄(第7〜72桁)と役割分担がある.それと同じように, CASL IIでも行は機能毎に欄が分かれている.例えば,先ほどのプログラム を例に取ると,図5のようになる.

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

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

5.2 機能別の各欄の説明

5.2.1 ラベル欄

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

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

重要なポイント

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

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

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

5.2.2 命令コード欄

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

5.2.3 オペランド欄

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

5.2.4 注釈欄

行中にセミコロン";"を書くことのより,それから行末まで注釈(コメン ト)として扱うことができる.FORTRANの注釈文と同じで,プログラムの実行に 何ら影響を与えない.プログラムの内容を分かりやすくするために書くことが 多い.あるいは,その行を実行させないときに行頭にセミコロンを";"を 追加してデバック作業を進める5ことがある.
ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
2005-11-25


no counter