Microchip社から無償で提供されているMPLABがありますね。
http://www.microchip.com/10/tools/archive/mplabi/mp520ful/index.htm
(ここから、Mp520ful.exeをダウンロードして
インストールして下さい。【結構でかいです10MB超え】)
これは、PICのプログラムをPICに焼き付け出来るHEXファイルを作る
コードジェネレータだけでなく、
PC上でプログラムをシュミレーションも出来ます。
(オートデザインさんは既にやられていますね!)
このMPLABで同じく付いてくるサンプルプログラム(sample.asm)を使って
プログラムのアセンブルとPCでのシュミレーションをやって見ましょう。
サンプルプログラム(sample.asm)は
かけ算をするプログラムが書かれています。
プログラムはこちら(禁転載)
mpy と名前が付けられたサブルーチンでそれを行っており、
PICが起動されてstartと書かれたラベルからプログラムが実行され、
mpyに35(16進)に2D(16進)をかけた答えを出させています。
答えはRAMに格納されます。
(プログラムではH_byteとL_byte と名付けられた
二つ合わせて16ビットの長さを持つデータ
です。)
これをMPLABでプロジェクトとしてアセンブルして
シュミレーションコードは作成し、PC上でシュミレーションさせます。
PICの命令を1ステップずつ走らせてその動きと
命令によって変わるデータ(RAM)やSFRを見ることが出来ます。
RAMやSFRは実行途中に書き換える事もできますから
sampleプログラムのかけ算に渡す情報を変える事もできます。
では、以下長くなりますが、私がやった手順を順にご紹介します。
1.プロジェクトの作成
2.プロジェクトのビルド
3.PC上でsampleプログラムを動かす
1.プロジェクトの作成
MPLABを起動します。
スタートメニュー>プログラム> Microchip
MPLAB>MPLAB

sample.pjtと言う名前のプロジェクトを作成します。
MPLABがインストールされたホルダに作ります。
sample.asmもそのホルダにあるはずです。
(通常 C:\Program Files\MPLAB です)
メニューから
Ploject > New Project...
で表示された窓で


sample.pjt とファイル名を指定しOKクリック。
Edit Project窓が表示されます。

Development Modeをシュミレータモードに変更します。
Change... をクリックしてDevelopment Mode窓を表示

Toolsタブ で MPLAB-SIM Simulatorを選択します。

(このタブで Processor (PICの種類も選択します)、今回はPIC16F84)
OKをクリックして

Development Mode が MPLAB-SIM16F84になっていることを確認します。
次に、その下方のProject Files 中の sample[.hex]をクリックすると

その右下にNode Properties ボタンが表示されるのでそれをクリックし

窓を出し何もせずにOKボタンクリック

Edit Project窓に戻るとAdd Nodeボタンが表示されます。
ここをクリックして、

その窓でsample.asmを選択してOKで戻り。

Edit Project窓をOKで終了します。
2.プロジェクトのビルド
メニューから
Project > Build ALL

でビルドが行われ
Build Results 窓に結果が表示されます。

Build completed successfully. が表示されたらOKです。
<Build Allは
アイコンクリックでも行えます>
3.PC上で、そのsampleを動す。
まずは、ROM, RAM, SFR, アセンブラリスト ウインドウを表示させます。
Window>Program Memory![]()
Window>File Registers![]()
Window>Special Function Registers![]()
Window>Absolute Listing

では、1ステップ実行してみます。
MPLABのアイコンに足形のアイコン(切れ目が入っていない)
があります。
これをクリックすると1ステップ実行されます。
(または、Debug >Run >Step でも同じ)
Program Memory Windowで
start と言うラベルが反転表示されています。

これがプログラムソース上ではこの箇所まで来たと言うことを示しています。
この時、他の窓もみれば、情報が表示されています。
実行した命令の結果変わった内容が赤文字で表示されています。

同時に Watch ウインドウを開いて、プログラムで使っている変数(データ)を
ウオッチします。これは、RAMの内容やSFRの内容がウオッチでき、
RAMと違うところはプログラムで与えた変数の名前でその内容の
変化を見ることができます。
方法は
Window>New Watch Window![]()
にてSymbol一覧からみたい物を選択してAddボタンで追加していきます。

かけ算の入力である
mulplr
mulcnd
とその答えである
H_byte
L_byte
とWレジスタ
をそれぞれ選んでAdd していってCloseをクリックして下さい。

Wath ウインドウにその名前と今の値が表示されています。
以降、1ステップずつ実行してプラグラムの流れと設定、演算命令で
データ(RAM)の内容が変わることが分かります。

---------
他にも実践的な方法として

・一気にプログラムを走らせて決めた場所で止める、Break
Point機能

・TTL I/Oピンへの入力信号を時系列に変化させるピンシュミレーション
等も出来ます。
2001年10月14日
本田とけお 記。