【ORANGE-4】モニターの使い方
ORANGE-4には、モニター機能があり、パソコンと接続することで、レジスターの値やメモリーの内容などを確認できます。本記事では、モニターの使い方を紹介します。パソコンとの接続方法は「【ORANGE-4】モニターの起動」をご覧ください。
ORANGE-4のモニター機能
ピコソフトの「ORANGE-4」は、機械語(マシン語)を学習することができる4ビットマイコンボードです。ORANGE-4の組み立てと各部の詳細について「【ORANGE-4】組み立てと各部の紹介」で詳しく紹介しています。
モニター機能
ORANGE-4には、モニター機能があり、USBシリアルモジュールを介してパソコンと接続することで、レジスターの値やメモリーの内容などをターミナルソフト(Tera Termなど)で確認できます。パソコンとの接続方法について「【ORANGE-4】モニターの起動」で詳しく紹介しています。
モニターの使い方
ORANGE-4のモニターを起動すると、ターミナルソフト(Tera Termなど)にファームウェアのバージョンやレジスターの値などの情報とともに「>(プロンプト)」が表示され、モニターコマンドの入力待ちとなります。
ファームウェア「Ver 1.08」で使用できるモニターコマンドは次の通りです。
| コマンド | 内容 |
|---|---|
| q | モニターの終了 |
| 0 | プログラムカウンター・スタックポインターのリセット |
| x | 現在の状態を表示 |
| d | メモリー(00-7F)の内容を表示 |
| de | メモリー(80-FF)の内容を表示 |
| eアドレス:16進数文字列 | メモリーの指定アドレスから連続して値をセット [使用例]e30:123abcde |
| eレジスター名:16進数 | 指定レジスターに値をセット [使用例]eax:0 |
| wページ番号 | メモリーの内容を指定したフラッシュメモリーのページ番号に書き込み [使用例]w2 |
| rページ番号 | 指定したフラッシュメモリーのページ番号からメモリーに読み込み [使用例]r2 |
| l[指定アドレス] | 逆アセンブルリストの表示 |
| g | プログラムの実行 |
| t | プログラムの1ステップ実行(call命令の呼び出し先をトレースする場合) |
| s | プログラムの1ステップ実行(call命令の呼び出し先をトレースしない場合) |
| b指定アドレス | ブレークポイントの設定 [使用例]b1f |
| m | 00-5F番地に書かれた自動演奏データーにしたがって演奏 |
q(モニターの終了)
モニターを終了します。モニターの起動中、消灯していた数字LED(7セグメントLED)が復帰して、00番地の値が表示されます。
0(PC・SPのリセット)
プログラムカウンター(PC)を00、スタックポインター(SP)をFFにします。
x(現在の状態を表示)
現在のプログラムカウンターが示す番地の値(マシン語と対応するアセンブリ言語)、レジスターの値・フラグの状態・スタックポインターの値、データー領域(50-5F番地)の状態が表示されます。
d、de(メモリーの内容を表示)
表2-2は、ORANGE-4のメモリーマップです。dコマンドで00-7F番地、deコマンドで80-FF番地の値を表示します。
| 番地 | 領域 |
|---|---|
| 00-4F | プログラム領域 |
| 50-5F | データー領域 |
| 60-7F | システム領域 |
| 80-EF | プログラム領域・スタック領域 |
| F0-FF | スタック領域 |
eアドレス:16進数文字列(指定メモリーに値をセット)
メモリーの指定アドレスから連続して値をセットします。例えば、00番地から連続した16進数文字列「a838397f0」を書き込むには「e00:a838397f0」と入力します。
eレジスター名:16進数(指定レジスターに値をセット)
指定レジスターに値をセットします。表2-2は、ORANGE-4に実装されているレジスターの一覧です。表の右端がコマンドでの指定方法です。例えば、Aレジスターに「6」をセットする場合は「eax:6」と入力します。
| レジスター名 | サイズ | 番地 | 指定方法 |
|---|---|---|---|
| A | 4ビット | 6F | ax |
| B | 4ビット | 6C | bx |
| Y | 4ビット | 6E | yx |
| Z | 4ビット | 6D | zx |
| A' | 4ビット | 69 | a' |
| B' | 4ビット | 67 | b' |
| Y' | 4ビット | 68 | y' |
| Z' | 4ビット | 66 | z' |
| PC | 8ビット | - | - |
| SP | 8ビット | - | - |
g(プログラムの実行)
プログラムカウンターの示す番地からプログラムを実行します。下図は、2進LEDの右端を点灯する(Lピカ)プログラム「a0e1f04」を00-06番地にセットして、プログラムカウンターをリセット後、実行したものです。プログラムの実行中は、モニターの入力を受け付けません。プログラムを停止するには、ORANGE-4の「RST」を押します。
t、s(プログラムの1ステップ実行)
プログラムカウンターの示す番地からプログラムを1ステップずつ実行します。下図は、プログラムカウンターをリセットした後、1ステップずつ実行したものです。都度、xコマンドの結果と同じものが表示されるので、レジスターの値などが確認できます。
なお、tコマンドはcall命令の呼び出し先をトレースする場合、sコマンドはトレースしない場合に使用します。
b指定アドレス(ブレークポイントの指定)
プログラムの実行中に、一時停止するブレークポイントを設定します。下図は、02番地にブレークポイントを設定したものです。gコマンドで実行すると、02番地で一旦停止して、xコマンドの結果と同じものが表示されます。レジスターの値などを確認して、gコマンドで再開、またはt、sコマンドで1ステップずつ実行します。
なお、アドレスを指定せずにbコマンドを実行すると、ブレークポイントが解除されます。
m(演奏)
00-5F番地に書かれた自動演奏データーにしたがって演奏します。下図は、00番地以降に自動演奏データー「a8383978383978393a3938391816753335363535131278393a3938391816753335363535131278383978383970fff」をセットして、演奏したものです。












