プログラムの入力から実行までの一連の作業は, 実際のKUE-CHIP2教育用ボードと同じです. しかし,以下のような点が大きく異なります.
KUE-CHIP2シミュレータは,大きく分けて次の2つの部分からなります.
画面上部の表示部で動作を確認しつつ, 画面下部の制御部でシミュレータを操作します. また,メモリエディタなどのツールは制御部から 起動します.
アプレット版では,起動と同時にメニューが独立したウィンドウとして 表示されます.これはアプレットではメニューを付けることができないからです. Windows95など一部のプラットホーム上ではこのウィンドウ が最初正しい大きさで表示されないときがあります. その場合は適当にリサイズしてください.
スタンドアローン版では,メニューはウィンドウの上部にあります.
表示部には,以下のような表示用LED,7セグメントがあります.
表示 | 機能 |
OP(LED) | プログラム実行中に点灯. |
P0〜P4(LED) | 実行クロックフェーズを表示. |
CF,VF,NF,ZF(LED) | 各種フラグの状態を表示.フラグが立っている時に点灯. |
INF, IN(LED) | IN命令が実行されたときに入力される値をLEDにより 2進で表示. |
OUTF, OUT(LED) | OUT命令が実行されたときに出力される値をLEDにより 2進で表示. |
PC(7segment) | プログラムカウンタの値を16進で表示. |
IR(7segment) | インストラクションレジスタの値を16進で表示. |
ACC(7segment) | ACCレジスタの値を16進で表示. |
IX(7segment) | IXレジスタの値を16進で表示. |
MAR(7segment) | メモリアドレスレジスタの値を16進で表示. |
Address(7segment) | アクセスしているアドレスの値を16進で表示. |
制御部には,以下のようなボタンなどがあります.
Control Button | SS |
プログラムを実行し,HALT命令で停止する. プログラム実行中は,現在実行中の命令を実行しその次の命令の前で停止する. |
SI | 1命令だけプログラムを実行し,停止する. | |
SP | 1クロックフェーズだけプログラムを実行し,停止する. | |
RESET | KUE-CHIP2シミュレータを初期状態に戻す. 内部のすべてのレジスタ,フラグなどの値が0になる. |
|
CLOCK | プルダウンメニュー形式. 動作速度を5段階に変更できる. | |
Tool Button | MEMORY | このボタンを押すごとに,メモリエディタ・ウィンドウの表示・非表示 をトグルする. |
BLOCK | このボタンを押すごとに,ブロック図・ウィンドウの表示・非表示 をトグルする. | |
LOG | このボタンを押すごとに,ログ・ウィンドウの表示・非表示 をトグルする. | |
Instruction | 現在実行中の命令を,ニーモニック形式で表示. | |
Total Phase | プログラムの実行を開始してから現在までの総フェーズ数を表示. | |
Total Instruction | プログラムの実行を開始してから現在までに実行した命令数を表示. | |
State | 現在のシミュレータの状態を表示する.
|
プログラムの入力はメモリエディタを用いて行います. メモリエディタは,制御部のMEMORYボタンを押すことで ブラウザとは独立したウィンドウとして立ち上がります. このウィンドウから 任意のアドレスに1バイト単位でプログラムを入力することができます.
入力は16進で行います. まず,変更したい値をマウスなどを用いて反転表示させます.反転 させる部分は必ず1バイトにして下さい.その後,16進数で 値をキーボードから入力します.
このようにして,1バイトずつプログラムを入力していきます.
<注意!>バージョン0.6からこの方法に変更になりました.
スタンドアローン版のみ,プログラムを記述したテキストファイル から入力することができます.
[File]メニューから,[Open...]を選択し,表示されるファイルダイアログで プログラムファイルを選びます.
プログラムを記述するテキストファイルは以下の形式に従います.
データの入力も,プログラムの入力と同様に行うことができます.
スタンドアローン版では,テキストファイルからの入力ができます. テキストファイルの中で,"[]"を使ってデータ領域のアドレスを 指定します.
プログラムの実行は,KUE-CHIP2教育用ボードと同様に行います. まず,RESETボタンを押し,続いてSS, SI, SP を使ってプログラムの実行を行います.
[Memory]メニューから[Operation...]を選択すると右のようなダイアログ が表示されます. このダイアログで,次の3つのメモリ操作を行うことができます. これらの3つの操作はラジオボタン形式でいずれか1つを選びます.
|
![]() |
また,スタンドアローン版では,[File]メニューの[Save Memory...]で メモリ内容をファイルに保存することができます. このファイルは,次回シミュレータを使用するとき[File]メニューの [Open...]でメモリに読み込むことができます. |
変更したいレジスタの7セグメントをマウスでクリックします. クリックするとその7セグメントが反転表示されます. その状態でキーボードから16進数で値を入力します.
状態を変更したいフラグのLEDをマウスでクリックします. クリックすることによって,フラグのON, OFFが切り替わります.
ブレークポイントは各レジスタ(PC, IR, MAR, ACC, IX)について 別々に設定することができます. それぞれに指定した値と等しくなったときにプログラムの実行を停止します.
例えば,PCのブレーク条件に03HをセットするとPCの値が03Hになったときに プログラムの実行が停止します.このとき,State:にはBREAKと表示されます.
ブレーク条件は,各レジスタの7セグメントの横にある小さな7 セグメントに値をセットします.この小さな7セグメントを マウスでクリックします.クリックすると反転表示され,キーボードから 16進数で値を入力します.
この条件を有効にするには,[Control]メニューから[Break point on] を選択します(このとき,メニュー項目は[Break point off]に変化します. また,逆に値をセットした状態でも[Break point off]を選択すると, ブレークポイントは無効になりプログラムの実行を停止させないように できます.
その値を無効にするには(初期状態に戻すには),マウスでクリックし キーボードから"-"(ハイフン)を入力して下さい.
まず制御部にあるLOGボタンを押し,ログ・ウィンドウを表示させます. そして,[Log]メニューから[Start Log]を選択すると (このときメニュー項目は[Stop Log]に変化します) それ以降の実行履歴をログ・ウィンドウに表示します. また,[Stop Log]を選択すると実行履歴の取得を中断できます.
ログ・ウィンドウの内容は,[Log]メニューから[Clear Log]を選択する ことで消去することができます.
さらに,スタンドアローン版では[File]メニューの[Save Log...]の項目を 選択することによってこのログ・ウィンドウに表示されている内容を ファイルに保存することができます.