操作方法

画面構成

画面には以下の操作可能な要素があります。

起動時の状態

起動時、CPUは停止状態です。メモリの先頭にはアドレス0x0000へのジャンプ命令(無限ループ)が配置されています。

メモリエディタにフォーカスがある状態で開始します。

フォーカス切り替え

キーボード操作は、フォーカスのあるエディタに対して有効です。

キー動作
Mメモリエディタにフォーカスを移動します。
R(メモリエディタ非編集モード時)レジスタエディタにフォーカスを移動します。

Start/Stopボタン

画面左上にあるボタンです。マウスクリックでCPUの実行を制御します。

状態表示クリック時の動作
停止中▶(スタートマーク)CPUの実行を開始します。
実行中⏸(一時停止マーク)CPUの実行を停止します。

このボタンによる停止・再開は、HLT命令によるCPU停止とは異なります。HLT命令で停止した状態からCPUを再開する方法はありません。その場合はページをリロードしてください。

MMUトグルボタン

CPUの絵の上にあるトグルボタンです。CPU停止中にマウスクリックすることで、MMUの有効・無効を切り替えます。

CPU実行中は操作できません。

MMUを有効にする場合は、事前にページテーブルとPTBRを設定してください。詳細はアーキテクチャを参照してください。

レジスタエディタ

CPUレジスタの現在値を表示し、16進数で編集できます。

表示レイアウト

A:XX  F:XX  PC  :XXXX
B:XX  C:XX  SP  :XXXX
D:XX  E:XX  PTBR:XXXX
H:XX  L:XX

A〜Lは16進数2桁、PC・SP・PTBRは16進数4桁で表示されます。

非編集モード

選択中のレジスタが黄色でハイライトされます。

キー動作
選択レジスタを上へ移動します。
選択レジスタを下へ移動します。
Enter編集モードに入ります。
Mメモリエディタにフォーカスを移動します。

編集モード

ニブル(4ビット)単位で値を入力できます。赤色のカーソルが編集位置を示します。

キー動作
09, AF16進数を入力します。カーソルは自動的に右へ移動します。
カーソルを左へ移動します。
カーソルを右へ移動します。
ESC編集を確定し、非編集モードに戻ります。

ESCキーは変更の「確定」です。変更を破棄する手段はありません。

メモリエディタ

メモリの内容を16進数で表示し、バイト単位で編集できます。全アドレス範囲(0x0000〜0xFFFF)にアクセスできます。

表示形式

    |hex
--------
0000|XX
0001|XX
...

1行に1バイトを表示します。カーソル移動に応じて表示範囲が自動スクロールします。

非編集モード

選択中のバイトが黄色でハイライトされます。

キー動作
1行上へ移動します。長押しで連続スクロールします。
1行下へ移動します。長押しで連続スクロールします。
/ アドレスを移動します。
Enter編集モードに入ります。
Gアドレス入力モードに入ります。

編集モード

キー動作
09, AFニブルに16進数を入力します。カーソルは自動的に右へ移動します。
/ ニブル間でカーソルを移動します。
ESC編集を確定し、非編集モードに戻ります。

ESCキーは変更の「確定」です。変更を破棄する手段はありません。

アドレス入力モード(Go to)

Gキーで開始します。指定したアドレスに直接ジャンプできます。

キー動作
09, AF16進数でアドレスを入力します(最大4桁)。
Enter入力したアドレスにジャンプします。
Backspace入力を1文字削除します。
ESCアドレス入力をキャンセルします。

プログラムの実行方法

以下の手順で任意の機械語プログラムを実行できます。

手順

  1. CPUが停止していることを確認します(Start/Stopボタンが「▶」の状態)。
  2. メモリエディタで、任意のアドレスにプログラムの命令列を配置します。
  3. レジスタエディタで、PCレジスタにプログラムの先頭アドレスを設定します。
  4. Start/Stopボタンをクリックして、CPUの実行を開始します。

例: 加算プログラム

AレジスタとBレジスタの値を加算する例です。

  1. メモリの0x0100番地以降に以下の命令列を配置します。
アドレス命令
0x01000x80ADD B(A = A + B)
0x01010x76HLT(CPU停止)
  1. PCレジスタに0x0100を設定します。
  2. Start/Stopボタンをクリックして実行を開始します。

プログラムの最後にはHLT命令やJMP命令による無限ループ等を配置してください。配置しない場合、CPUの実行がプログラムの後のアドレスへも進んでしまいます。