(since 1998/11)(更新 2004/07/16)

TNO2:CASL入門[2]

情報系/IT系の広告を掲載しています。(広告一覧)
©Copyright 1998-2001,2003,2004 小野智章(小野情報設計)
無断転載を禁止します。
本ページは、 「Rook 2.01」仕様に対応済みです。
CASL入門[目次]
CASL入門[索引]
CASL入門[1]
CASL入門[3]

(chapter2-page1)
2-1.ソース・プログラムと実行内容の対応

 先ほどの修正したプログラムを実行してみましょう。 実行終了するまで、 「Step」ボタンのクリックを繰り返してください。 これ以降「実行する」とは、終了するまで実行を進める意味だと考えてください。
 表示結果を並べた履歴は、次の様になる筈です。 (最後の結果より前の履歴は、 2つあるテキスト欄の内の、下の方に表示されます。)
実行準備中。
load start
load object.
load-size=8 word(s).
link to source.
reset OK.
実行準備が出来ました。
>1; LAD GR0,2
[LAD命令]
next>2; WRITE 0
>2; WRITE 0
[PUSH命令]
GR0=2(0002)
[SVC命令]
next>3; EXIT
>3; EXIT
プログラムは、PR[0006;SAMPLE+6]が指定したEXIT命令で終了しました。
[SVC命令]
 書き換えられたソース・プログラムに対応して、 結果も変っていますね。 しかし、履歴全部を見ると多少ごぢゃごちゃとしているので、 CASLIIプログラム自体の実行結果だけを見ることにしましょう。 「Trace」チェック・ボックスのチェックを外して、 最初から実行して見てください。 (チェックを外すには、チェック・ボックスをクリックすれば良いです。 又、最初から実行するには、 「ReStart」ボタンを使用するのでしたね。)
 結果の履歴の内、エミュレータ起動時のメッセージを除いたものは、 次の様になります。
GR0=2(0002)
プログラムは、PR[0006;SAMPLE+6]が指定したEXIT命令で終了しました。
 これ以降の結果は、これと同様の方法で示すことにします。
 元のソース・プログラムの2の部分を、 色々な数値に書き換えて、 (毎回アセンブルしなおしてから、)実行してみて下さい。 結果の「GR0=2(0002)」の部分が、 書き換えた内容に対応して、変化します。

 それでは、ソース・プログラムの意味を、順に見ていきましょう。 履歴用テキスト欄の直ぐ上にある 「Source」ボタンをクリックしてください。 すると履歴用テキスト欄に、次の様にソース・プログラムが表示されます。 (左フレーム内の「Source」ボタンをクリックすると、 ソース・プログラムの入力/変更用のページが表示されます。 この方法でもソース・プログラムを見ることが出来ますが、 実行結果が消えてしまいます。) この履歴用テキスト欄に表示されたソース・プログラムは、修正は出来ません。 尚、元の履歴の表示に戻すには、 「Log」ボタンをクリックします。
; log消去 , (log-max=KB)    ←→
 最初の行は、 「SAMPLE」というプログラムであることを表しています。
 2行目は、データを記憶する「GR0」という場所に 2を入れることを表しています。 2の部分を変えれば、 違う数値を入れることが出来ます。 また、「GR0」の部分を変えれば、 別のデータを記憶する場所に数値を入れることになります。
(chapter2-page2)
 3行目は、「GR0」に 入っている内容を表示することを表します。 また、「0」の部分を変えれば、 別の場所に入っている数値を表示することになります。
 4行目は、オブジェクト・プログラムの実行を中止することを表します。 (正しくは、OSに後を任せるという意味になります。)
 5行目は、これでソース・プログラムが終わりであるということを表します。

 ここで出てきた「START」「LAD」「WRITE」「EXIT」「END」は、 プログラム中でコンピュータに対する指示の種類を表すための言葉です。 これらは、CASLIIでは、 「命令コード」と呼ばれています。 CASLII以外では、データを操作する機能という意味で、 「オペレータ」と呼ばれることもあります。
 「LAD」「WRITE」の後ろには、 「GR0,2」や「0」が記述されています。 これらは、「命令コード」の部分に対して、 操作される対象という意味で、「オペランド」と呼ばれています。
(前にマナーとして語句の位置を揃えたのは、 「命令コード」と「オペランド」をはっきりさせる意味があったのです。)
 「命令コード」と「オペランド」を合せたものを、 「命令」と言います。 「EXIT」「END」の様に、命令の種類によっては、 「命令コード」のみで「オペランド」が無いものも、あります。 以後、説明の中で「命令」という言葉を、 「LAD」命令などの形で使ってゆきます。

(chapter2-page3)
2-2.レジスタ

 先ほどのプログラムに、 「GR0」というデータを記憶する場所が出てきました。 このGR0は、CPUの中に用意されています。 この様なCPUの中に用意されたデータを記憶する場所は 「レジスタ」と呼ばれ、 特にGR0の様に色々な目的に使用出来るレジスタを「汎用レジスタ」と呼びます。
 尚、CASLIIには、 GR0,GR1,GR2,GR3,GR4、GR5、GR6、GR7の、 8つの汎用レジスタが用意されています。

 次の様にソース・プログラムを書き換えて、各汎用レジスタを使ってみましょう。
SAMPLE  START
  LAD  GR0,1
  LAD  GR1,2
  LAD  GR2,3
  LAD  GR3,4
  LAD  GR4,500
  WRITE  0
  WRITE  1
  WRITE  2
  WRITE  3
  WRITE  4
  EXIT
  END
 結果は、次の様になる筈です。
GR0=1(0001)
GR1=2(0002)
GR2=3(0003)
GR3=4(0004)
GR4=500(01F4)
プログラムは、PR[001E;SAMPLE+30]が指定したEXIT命令で終了しました。
(chapter2-page4)
 ソース・プログラムと出力の関係が分かりますか?
 5行の「LAD」命令で各汎用レジスタに数値が入れられて、 次の5行の「WRITE」命令でその内容が出力されていますね。
 尚、各レジスタ内容の一覧は、 「Step」ボタンの 右にも表示されています。 各命令の実行毎にレジスタ内容の表示が変化することを、 確認しておいてください。

(chapter2-page5)
2-3.ソース・プログラムの保存

 さて、この様にして作成したプログラムを保存する方法を、覚えておきましょう。

 途中まで作成したプログラムを後日完成したい時や、 以前作成したプログラムを少し変更したい時など、 ソース・プログラムの保存が必要です。 通常はファイルへ保存しますが、 ブラウザのセキュリティ上の機能制限のため、 Rook自体にはファイルを利用する機能はありません。 そこで、「コピー&ペースト」機能を利用して、 次の様な操作で、ファイルとの間でテキストを移し替えることになります。 (この操作は参考例です。 利用環境に合わせ、適宜、変更してください。)
  1. ノート・パッド、メモ帳等のテキスト・エディタで、 新規ファイルを開く。
    ファイル名は、最後に付ける拡張子を「.CS」「.CAS」などとしておくと、 CASL用と分かり易いです。 アセンブラ言語と言うことで、「.ASM」とする方法もあるでしょう。
  2. Rook上で、ソース・プログラムを表示する。
  3. Rook上に表示されたソース・プログラムを、 「コピー&ペースト」機能により、 テキスト・エディタのファイルへコピーする。
  4. テキスト・エディタのファイルを、保存する。

 保存したソース・プログラムを取り出すには、次の様にします。 (この操作も参考例です。 利用環境に合わせ、適宜、変更してください。)
  1. テキスト・エディタで、保存したファイルを開く。
  2. Rook上で、ソース・プログラムのページを表示する。
  3. テキスト・エディタ上に表示されたソース・プログラムを、 「コピー&ペースト」機能により、 Rookのソース・プログラムを入力するテキスト欄へコピーする。

(chapter2-page6)
2-4.オブジェクト・プログラムの保存

 通常は、ソース・プログラムだけでなく、 オブジェクト・プログラムも保存出来ます。 しかし、Rookの現行版(Ver. 2.xx)では、 オブジェクト・プログラムは保存出来ません。 従って、以下の記述は参考と考えて下さい。

 同じプログラムを何度もアセンブルしなおすのは効率が悪いので、 通常は、オブジェクト・プログラムも保存出来る様になっています。 操作手順は、ソース・プログラムの場合とほぼ同じです。 又、オブジェクト・プログラムのファイル名は、 最後に付ける拡張子を「.CO」とすると、 CASL用のオブジェクトと分かり易いです。

CASL入門[目次]
CASL入門[索引]
CASL入門[1]
CASL入門[3]
学習室
トップ・ページへ

質問・ご意見等、お待ちしております。
小野智章(小野情報設計) 
Mail to Mail連絡先
©Copyright 1998-2001,2003,2004 小野智章(小野情報設計)
無断転載を禁止します。