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

TNO: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命令で終了しました。
 これ以降の結果は、これと同様の方法で示すことにします。
 元のソース・プログラムのの部分を、 色々な数値に書き換えて、 (毎回アセンブルしなおしてから、)実行してみて下さい。 結果の「GR0=2(0002)」の部分が、 書き換えた内容に対応して、変化します。

 それでは、ソース・プログラムの意味を、順に見ていきましょう。 履歴用テキスト欄の直ぐ上にある 「Source」ボタンをクリックしてください。 すると履歴用テキスト欄に、次の様にソース・プログラムが表示されます。 (左フレーム内の「Source」ボタンをクリックすると、 ソース・プログラムの入力/変更用のページが表示されます。 この方法でもソース・プログラムを見ることが出来ますが、 実行結果が消えてしまいます。) この履歴用テキスト欄に表示されたソース・プログラムは、修正は出来ません。 尚、元の履歴の表示に戻すには、 「Log」ボタンをクリックします。
; log消去 , (log-max=KB)    ←→
 最初の行は、 「SAMPLE」というプログラムであることを表しています。
 2行目は、データを記憶する「GR0」という場所に を入れることを表しています。 の部分を変えれば、 違う数値を入れることが出来ます。 また、「GR0」の部分を変えれば、 別のデータを記憶する場所に数値を入れることになります。
(chapter2-page2)
 3行目は、「GR」に 入っている内容を表示することを表します。 また、「」の部分を変えれば、 別の場所に入っている数値を表示することになります。
 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  
  WRITE  
  WRITE  
  WRITE  
  WRITE  
  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 小野智章(小野情報設計)
無断転載を禁止します。