sacoのマニュアル Copyright (C) 1992 Daikoku Manabu 0 はじめに ・ このマニュアルはsacoを使用する方法について述べたものです. ・ sacoは,CASL(通商産業省の情報処理技術者試験で出題されるアセンブラ言語)  で書かれたプログラムを実行するプログラムです. ・ sacoは無料です.sacoは自由に使用することができ,自由にコピーすることがで  きます. ・ sacoを使用したことによって生じた損失に対するすべての責任はそれを使用した  人が負うものとします. 1 メニューの操作  sacoに含まれるそれぞれの機能は,階層的に構成されたメニューを操作することに よって呼び出すことができます.  sacoのメニューは次のような形式になっています.      メニュー名      X 項目1      X 項目2        …      X 項目n  項目の左のXの場所には,その項目を選択するための文字が表示されます.メニュ ーが画面に表示されているときに項目の左に表示された文字のキーを押すと,その項 目が選択されます.そのとき,CAPSキーはロックされていてもロックされていなくて もどちらでもかまいません.  項目が選択されると,その項目に対応する機能または別のメニューが呼び出されま す.  メニューが表示されているときにESCキーを押すことによって,そのメニューを呼 び出したメニュー(つまり,ひとつ上のレベルのメニュー)に戻ることができます (例外もあります). 2 sacoの起動と終了  sacoは,DOSのコマンドインタプリタにsacoと入力することによって起動するこ とができます.sacoが起動すると,画面がクリアされ,次のようなメニューが表示さ れます.      saco Version X.XX      Copyright (C) XXXX Daikoku Manabu      メインメニュー      F ファイル      E 実行      D デバッガー  これがsacoのメインメニューです.  sacoを終了させたいときは,まず,ESCキーを何回か押してメインメニューに戻っ て下さい.メインメニューに戻ったら,もう一度ESCキーを押して下さい.すると,      sacoを終了しますか?      Y はい      N いいえ というメニューが表示されます.ここでYのキーを押せばsacoは終了します.Nのキー またはESCキーを押すとメインメニューに戻ります. 3 ソースプログラムのロード  sacoは自分の内部に1個のソースプログラム(CASLで書かれたプログラム)を記憶 することができます.  ソースプログラムをsacoの内部にロードしたいときは,まず,メインメニューで 「ファイル」(F)を選んで下さい.するとファイルのメニューが表示されます.次に, ファイルのメニューで「ロード」(L)を選んで下さい.すると,      ファイル名 : というプロンプトが表示されますので,ロードしたいソースプログラムのファイル名 を入力して改行キーを押して下さい.するとロードが行なわれます.  sacoはソースプログラムを1個しか記憶することができませんので,ロードを行な うと,それ以前にロードされていたプログラムはsacoの記憶から失われます.  いくつかのファイルに分割されたひとつのプログラムを実行したいときは,それら をひとつのファイルに連結して,それをロードして下さい.  プログラムをいくつかのモジュールで構成する場合は,必ず,メインルーチンをプ ログラムの先頭に書いて下さい.なぜなら,sacoは,プログラムにいくつかのモジュ ールが含まれている場合はその先頭にあるモジュールをメインルーチンとみなすから です.  ロードが終了すると,そのソースプログラムは自動的にアセンブルされます.エラ ーがある場合はエラーメッセージが表示されます.  アセンブルによって作られたCOMETの機械語のコードは,sacoがシミュレートして いるCOMETのメモリーに書き込まれます.  ロードとアセンブルが終了すると,画面に Hit any key. と表示されますので,任 意のキーを押して下さい.するとファイルのメニューに戻ります. 4 オブジェクトプログラムの実行  ソースプログラムをロードしたときにエラーメッセージが何も表示されなかった場 合は,COMETのメモリーに書き込まれたオブジェクトプログラムを実行することがで きます.  オブジェクトプログラムを実行したいときは,メインメニューで「実行」(E)を選 んで下さい.するとオブジェクトプログラムが実行されます.実行が終了すると Hit any key. と表示されます.任意のキーを押すとメインメニューに戻ります.  この方法でプログラムを実行した場合,IN命令による入力はキーボードから行なわ れ,OUT命令による出力はモニターに行なわれます.入力先または出力先としてファ イルを指定する方法については,第6節の1を参照して下さい.  プログラムの実行は,EXIT命令が実行された場合または実行中にエラーが発生した 場合に終了します. 5 デバッガー 5.0 デバッガーの概要  sacoの内部には「デバッガー」と呼ばれる機能が組み込まれています.sacoのデバ ッガーは,sacoがシミュレートしているCOMETのメモリーまたはレジスターの内容を 表示したり,それらの内容を変更したり,プログラムカウンターによって指定された 命令を実行したりすることができます.  デバッガーは,メインメニューで「デバッガー」(D)を選択することによって呼び 出すことができます.デバッガーは,呼び出されると,画面にレジスターの内容を表 示して,その下に自分のメニューを表示します. 5.1 命令の実行  デバッガーのメニューで「命令の実行」(E)を選ぶと,そのときのプログラムカウ ンターの内容を先頭アドレスとする命令が実行され,画面上のレジスターの内容はそ れにともなって変化します.  OUT命令によって生成された,出力手続きを呼び出すCALL命令が実行された場合, 出力の結果は画面の左下に表示されます.同様に,IN命令によって生成された,入力 手続きを呼び出すCALL命令が実行された場合は,画面の左下にカーソルが表示されて 入力待ちになりますので,文字列を入力して改行キーを押して下さい. 5.2 参照  デバッガーのメニューで「参照」(S)を選ぶと,      参照      S ソースリスト      D ダンプリスト      R レジスターの内容      L ラベルテーブル というメニューが表示されます.ソースリスト,レジスターの内容,ラベルテーブル については,項目を選ぶとすぐにその項目に対応する表示が画面に現われます.  ダンプリストが選ばれた場合,デバッガーは開始アドレスと終了アドレスの入力を 要求しますので,CASLの10進定数または16進定数でアドレスを入力して下さい. するとデバッガーは,開始アドレスから終了アドレスまでのそれぞれの記憶場所の内 容を表示します.  記憶場所およびレジスターの内容は,16進数,2進数,10進数(符号なし), 10進数(符号付き),文字で表示されます. 5.3 変更  メモリーまたはレジスターの内容を変更したいときは,デバッガーのメニューで 「変更」(C)を選んで下さい.すると,      変更      M メモリー      R レジスター というメニューが表示されますので,どちらかを選んで下さい.  メモリーが選ばれた場合,デバッガーは,アドレスと値の入力を要求しますので, 変更したい場所のアドレスおよびそこに格納したい値を入力して下さい.  レジスターが選ばれた場合,デバッガーは,「どのレジスターですか?」というメ ニューを表示しますので,変更したいレジスターの番号のキーを押して下さい.する とデバッガーは値の入力を要求しますので,レジスターに設定したい値を入力して下 さい.  なお,メモリーまたはレジスターの内容を変更するとき,アドレスや値の入力には CASLの10進定数または16進定数を使用して下さい.そのどちらでもない文字列が 入力された場合,デバッガーはそれを0とみなして処理します. 5.4 レジスターの初期化  デバッガーのメニューで「レジスターの初期化」(I)を選ぶと,レジスターに次の ような値が設定されます.  ・ GR0−3  ゼロ.  ・ GR4(スタックポインター)  スタック領域の最後のアドレスに1を加算   したもの.  ・ フラグレジスター  ゼロ.  ・ プログラムカウンター  プログラムの実行開始番地(メインルーチンの   START命令でそれが定義されている場合はそのアドレス.定義されていない場合   はゼロ). 6 ファイルのメニュー 6.0 ファイルのメニューの概要  メインメニューで「ファイル」(F)を選ぶと,      ファイル      L ロード      W 書き込み      D DOSコマンドの実行 というメニューが表示されます.このメニューを「ファイルのメニュー」と呼ぶこと にします.sacoでは,キーボードとモニター以外のファイルにアクセスを行なう機能 はすべてこのメニューから呼び出すことができるようになっています.この節では, ファイルのメニューの項目のうち,「書き込み」と「DOSコマンドの実行」につい て解説します.なお,「ロード」については第3節を参照して下さい. 6.1 書き込み  sacoは,ソースリスト,ダンプリスト,レジスターの内容,ラベルテーブル,およ び実行結果(OUT命令による出力)を任意のファイルに書き込むことができます.そ れらの機能を呼び出したいときは,ファイルのメニューで「書き込み」(W)を選んで 下さい.すると,      書き込み      S ソースリスト      D ダンプリスト      R レジスターの内容      L ラベルテーブル      E 実行結果 というメニューが表示されますので,ファイルに書き込みたいものをそのメニューの 中から選んで下さい.ソースリスト,ダンプリスト,レジスターの内容,ラベルテー ブルが選ばれた場合,sacoは,ファイル名の入力を要求しますので,出力先のファイ ル名を入力して下さい.  「実行結果」(E)が選ばれた場合,sacoは,入力ファイル名と出力ファイル名の入 力を要求します.この場合の入力ファイルというのはIN命令が入力の対象とするファ イルで,出力ファイルというのはOUT命令が出力の対象とするファイルです.IN命令 またはOUT命令を使っていないプログラムを実行する場合はファイル名としてNULを入 力して下さい. 6.2 DOSコマンドの実行  sacoの使用中にDOSのコマンドを実行したくなった場合は,ファイルのメニュー で「DOSコマンドの実行」(D)を選んで下さい.すると,      DOSコマンド : というプロンプトが表示されますので,DOSのコマンドを入力して下さい.すると そのコマンドが実行されます.コマンドの実行が終了すると,Hit any key. と表示 されますので,任意のキーを押して下さい.するとファイルのメニューに戻ります. 7 名前の由来  sacoという名前は,Simulator for All CASL Otackeys に由来するものです.