Juso CASLのマニュアル Copyright (C) 1991 Manabu Daikoku 1 はじめに  Juso CASLは,CASLで書かれたプログラムをアセンブルして実行するためのソフトウェアです.Jusoは「じゅーそー」と発音します.この名前は大阪市淀川区にある「十三」という地名に由来するものです.  Juso CASLは,assembler, simulator, dumpという3つのプログラムから構成されています.CASLで書かれたプログラムをJuso CASLを使って実行するためには,まずassemblerを使ってCASLのプログラムをCOMETの機械語に変換し,そののちsimulatorを使って機械語のプログラムを実行する,ということを行なう必要があります.dumpは,COMETの機械語のプログラムを16進数,10進数,および文字で表示するプログラムです.  Juso CASLは,次のような7個のファイルから構成されています. JCA.EXE : assemblerの実行形式プログラム JCS.EXE : simulatorの実行形式プログラム JCD.EXE : dumpの実行形式プログラム JCA.C : assemblerのソース・プログラム JCS.C : simulatorのソース・プログラム JCD.C : dumpのソース・プログラム JCM.DOC : このマニュアル 2 配布について  Juso CASLはPDS(public domain software)です.Juso CASLに含まれているプログラムおよびマニュアルは,著作権者にいちいち断わらなくても,使用,コピー,改造,および映画化(アニメーションを含む)を行なうことができます. 3 assembler 3.1 機能  CASLは,COMETというコンピュータのアセンブリ言語です.Juso CASL assemblerは,CASLで書かれたプログラムをCOMETの機械語に変換するプログラムです(ということはつまり,CASLのアセンブラだということです). 3.2 起動  Juso CASL assemblerを起動したいときは, JCA filename というコマンドをMS-DOSに入力して下さい.filenameというのはCASLのソース・ファイル(ソース・プログラムがはいっているファイル)の名前です.ファイルの拡張子がCASの場合は,拡張子を省略することができます.そのファイルがカレント・ディレクトリ以外の場所にある場合は,パス名で指定して下さい. 3.3 結果のファイル  ソース・プログラムにエラーがなければ,assemblerは,ソース・ファイルと同じディレクトリに次の2つのファイルを作ります. XXXXX.COB : オブジェクト・ファイル XXXXX.TBL : テーブル・ファイル  XXXXXというのは,ソース・ファイルと同じ名前です. (1) オブジェクト・ファイル  オブジェクト・ファイルには,COMETの機械語に変換されたプログラム(つまりオブジェクト・プログラム)がはいっています.オブジェクト・プログラムの形式は次のようになっています.   入口名 ヌル文字 実行開始番地 プログラムの本体  COMETの機械語の命令コードについては,通産省の仕様書(文献[1])には書かれていないので,文献[2]を参考にしました. (2) テーブル・ファイル  テーブル・ファイルには,次のような2種類の表がはいっています. ENTRANCE NAME TABLE LABEL TABLE  ENTRANCE NAME TABLEは,ファイルの中にあるすべてのプログラムの入口名,実行開始番地のラベル,実行開始番地の表です.  LABEL TABLEは,ファイルの中のすべてのラベルとそのラベルに対応するアドレスを示す表です. 3.4 エラー・メッセージ  ソース・プログラムの中にエラーがあった場合,assemblerは,エラー・メッセージを出力します.エラー・メッセージの左端にある数値は,エラーが発生した場所の行数です.エラー・メッセージの種類によっては,行数が表示されない場合もあります(たとえば存在しないラベルを参照したというような場合).  エラー・メッセージは標準出力に出力されますので,標準出力を切り換えれば任意のファイルにそれを入れることができます.たとえば, JCA B:UNAGI >B:UNAGI.ERR というようなコマンドでassemblerを起動すると,エラー・メッセージはB:UNAGI.ERRというファイルにはいります.  assemblerは,アセンブルが終了すると, errors = XXXXX という形式でエラーの個数を出力します. 4 simulator 4.1 機能  Juso CASL simulatorは,COMETをシミュレートするプログラムです.つまり,それはCOMETの機械語のプログラムを実行することができます. 4.2 起動  Juso CASL simulatorを起動したいときは, JCS [options] filename というコマンドをMS-DOSに入力して下さい.filenameというのはオブジェクト・プログラムのファイル名です.ファイルの拡張子がCOBの場合は,拡張子を省略することができます.  simulatorは,オブジェクト・プログラムを読み込んでそれを実行します. 4.3 起動時のオプション  simulatorの起動時に,次のようなオプションを指定することができます. -D :実行終了後にメモリーのダンプ・リストを出力します. -R :実行終了後にレジスターの内容を出力します. -Sn:99...9 :GRnに10進数99...9を設定します. -Sn:#XXXX :GRnに16進数XXXXを設定します. -T :トレース・モードでプログラムを実行します.  -Sオプションで値を設定することのできる汎用レジスタは,0番から3番までです. 4.4 トレース・モード  -Tオプションでsimulatorを起動すると,simulatorは,トレース・モードでプログラムを実行します.トレース・モードでは,COMETの内部の状態が次のように出力されます. PC = 0000 INST = 1000 ADDR = 000E GR0 = 0000 0 [.] GR1 = 0000 0 [.] GR2 = 0000 0 [.] GR3 = 0000 0 [.] GR4 = 6000 24576 [.] FR = 0 plus (E)xecute (Q)uit >  それぞれの項目は次のような意味です.    PC 現在のプログラム・カウンタの内容    INST これから実行しようとする命令の命令部    ADDR これから実行しようとする命令のアドレス部    GR0-4 汎用レジスタの内容    FR フラグ・レジスタの内容  このとき,Eのキーを押すと,そこに表示されている命令が実行され,そののちの状態が表示されます.Qのキーを押すと,プログラムの実行が終了します.  COMETの内部の状態は標準出力に出力されますので,標準出力を切り換えれば任意のファイルにそれを入れることができます.たとえば, JCS -T B:KURAGE >B:KURAGE.TRC というようなコマンドでassemblerを起動すると,COMETの内部の状態はB:KURAGE.TRCというファイルにはいります.-Dや-Rオプションで出力されるものも,同じように任意のファイルに入れることができます. 5 dump 5.1 機能  Juso CASL dumpは,COMETの機械語のプログラムを16進数,10進数,および文字で表示します. 5.2 起動  Juso CASL dumpを起動したいときは, JCD filename というコマンドをMS-DOSに入力して下さい.filenameというのはオブジェクト・プログラムのファイル名です.ファイルの拡張子がCOBの場合は,拡張子を省略することができます.  dumpはオブジェクト・プログラムを読み込んで,その中のそれぞれの語を,次のような形式で出力します.   アドレス: 16進数 10進数 [文字] 6 ソース・プログラムについて  ソース・プログラムは,通産省の仕様書の通りに書けばたいていはアセンブルできると思います.ただし,Juso CASLは複数のソース・ファイルを同時にアセンブルすることができませんので,ソース・プログラムが複数のファイルにまたがっているときは,それらをひとつのファイルにまとめてからアセンブルして下さい.それらを別々にアセンブルしてもリンクはできません(Juso CASLにはリンカはありません).  Juso CASLは,ソース・ファイルの先頭にあるプログラムを主プログラムとみなします.したがって,主プログラムはかならず先頭に書いて下さい.  プログラムは,かならずEXIT命令で実行が終了するように書いて下さい.RET命令で実行が終了する副プログラムを単独で実行させると暴走します. 参考文献 [1] 「アセンブラ言語の仕様」(情報処理技術者試験センター,「平成2年度秋期情報処理技術者試験案内書」所収). [2] 廣松恒彦・山口和子「COMET/CASL」,オーム社,1988.