【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」をセットして、演奏したものです。