「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

and more...

Lab.以外の情報を紹介しています。

レジスターの値やメモリーの内容を確認しながら実行

【ORANGE-4】モニターの使い方

2022-10-182022-10-18

ORANGE-4には、モニター機能があり、パソコンと接続することで、レジスターの値やメモリーの内容などを確認できます。本記事では、モニターの使い方を紹介します。パソコンとの接続方法は「【ORANGE-4】モニターの起動」をご覧ください。

ORANGE-4のモニター機能

ピコソフトの「ORANGE-4」は、機械語(マシン語)を学習することができる4ビットマイコンボードです。ORANGE-4の組み立てと各部の詳細について「【ORANGE-4】組み立てと各部の紹介」で詳しく紹介しています。

図1-1.4ビットマイコンボード「ORANGE-4」
図1-1.4ビットマイコンボード「ORANGE-4」

モニター機能

ORANGE-4には、モニター機能があり、USBシリアルモジュールを介してパソコンと接続することで、レジスターの値やメモリーの内容などをターミナルソフト(Tera Termなど)で確認できます。パソコンとの接続方法について「【ORANGE-4】モニターの起動」で詳しく紹介しています。

図1-2.ORANGE-4のモニター機能
図1-2.ORANGE-4のモニター機能

モニターの使い方

ORANGE-4のモニターを起動すると、ターミナルソフト(Tera Termなど)にファームウェアのバージョンやレジスターの値などの情報とともに「>(プロンプト)」が表示され、モニターコマンドの入力待ちとなります。

図2-1.モニターの初期メッセージ
図2-1.モニターの初期メッセージ

ファームウェア「Ver 1.08」で使用できるモニターコマンドは次の通りです。

表2-1.ORANGE-4のモニターコマンド
コマンド 内容
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番地の値が表示されます。

図2-2.q(モニターの終了)
図2-2.q(モニターの終了)

0(PC・SPのリセット)

プログラムカウンター(PC)を00、スタックポインター(SP)をFFにします。

図2-3.0(PC・SPのリセット)
図2-3.0(PC・SPのリセット)

x(現在の状態を表示)

現在のプログラムカウンターが示す番地の値(マシン語と対応するアセンブリ言語)、レジスターの値・フラグの状態・スタックポインターの値、データー領域(50-5F番地)の状態が表示されます。

図2-4.x(現在の状態を表示)
図2-4.x(現在の状態を表示)

d、de(メモリーの内容を表示)

表2-2は、ORANGE-4のメモリーマップです。dコマンドで00-7F番地、deコマンドで80-FF番地の値を表示します。

表2-2.ORANGE-4のメモリーマップ
番地 領域
00-4F プログラム領域
50-5F データー領域
60-7F システム領域
80-EF プログラム領域・スタック領域
F0-FF スタック領域
図2-5.d、de(メモリーの内容を表示)
図2-5.d、de(メモリーの内容を表示)

eアドレス:16進数文字列(指定メモリーに値をセット)

メモリーの指定アドレスから連続して値をセットします。例えば、00番地から連続した16進数文字列「a838397f0」を書き込むには「e00:a838397f0」と入力します。

図2-6.eアドレス:16進数文字列(指定メモリーに値をセット)
図2-6.eアドレス:16進数文字列(指定メモリーに値をセット)

eレジスター名:16進数(指定レジスターに値をセット)

指定レジスターに値をセットします。表2-2は、ORANGE-4に実装されているレジスターの一覧です。表の右端がコマンドでの指定方法です。例えば、Aレジスターに「6」をセットする場合は「eax:6」と入力します。

表2-2.ORANGE-4のレジスター一覧
レジスター名 サイズ 番地 指定方法
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ビット
図2-7.eレジスター名:16進数(指定レジスターに値をセット)
図2-7.eレジスター名:16進数(指定レジスターに値をセット)

g(プログラムの実行)

プログラムカウンターの示す番地からプログラムを実行します。下図は、2進LEDの右端を点灯する(Lピカ)プログラム「a0e1f04」を00-06番地にセットして、プログラムカウンターをリセット後、実行したものです。プログラムの実行中は、モニターの入力を受け付けません。プログラムを停止するには、ORANGE-4の「RST」を押します。

図2-8.g(プログラムの実行)
図2-8.g(プログラムの実行)

t、s(プログラムの1ステップ実行)

プログラムカウンターの示す番地からプログラムを1ステップずつ実行します。下図は、プログラムカウンターをリセットした後、1ステップずつ実行したものです。都度、xコマンドの結果と同じものが表示されるので、レジスターの値などが確認できます。

図2-9.t、s(1ステップ実行)
図2-9.t、s(1ステップ実行)

なお、tコマンドはcall命令の呼び出し先をトレースする場合、sコマンドはトレースしない場合に使用します。

b指定アドレス(ブレークポイントの指定)

プログラムの実行中に、一時停止するブレークポイントを設定します。下図は、02番地にブレークポイントを設定したものです。gコマンドで実行すると、02番地で一旦停止して、xコマンドの結果と同じものが表示されます。レジスターの値などを確認して、gコマンドで再開、またはt、sコマンドで1ステップずつ実行します。

図2-10.b指定アドレス(ブレークポイントの指定)
図2-10.b指定アドレス(ブレークポイントの指定)

なお、アドレスを指定せずにbコマンドを実行すると、ブレークポイントが解除されます。

m(演奏)

00-5F番地に書かれた自動演奏データーにしたがって演奏します。下図は、00番地以降に自動演奏データー「a8383978383978393a3938391816753335363535131278393a3938391816753335363535131278383978383970fff」をセットして、演奏したものです。

図2-11.m(演奏)
図2-11.m(演奏)

おすすめ

PICkit 4 インサーキットデバッガー/プログラマー

MPLAB X統合開発環境の強力なGUIを使ってPICマイコンを迅速かつ簡単にデバッグおよびプログラミングできます。

CPUの創りかた

著 者
渡波 郁
出版社
‎毎日コミュニケーションズ
発売日
2003/10/1

「PICマイコン」で学ぶ電子工作実験

著 者
神田 民太郎
出版社
‎工学社
発売日
2021/10/26

31バイトでつくるアセンブラプログラミング アセンブラ短歌の世界

著 者
坂井 弘亮
出版社
‎マイナビ出版
発売日
2017/9/26

大人の科学マガジン Vol.24

著 者
大人の科学マガジン編集部
出版社
‎学研プラス
発売日
2009/7/1
この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動