PICマイコンを触ってみる(MPLAB編:2/2)

マイコン

ステップ実行します

デバックアイコン(赤で囲ったところ)をクリックして下さい。※マウスを合わせると「Step Into」と表示されます。

そうすると、ソースコードの左側の矢印は、一段下がっています。次の命令を実行しようとしています。
「Special Function Registers」Window(赤で囲ったところ)を見て下さい。wレジスタには、”0x01″が入っていますね。
※プログラムカウンターの下位8ビット(:PCL)は、”0x01″を示していますね。プログラムカウンターが、1増加しています。
「Program Memory」Window(青で囲ったところ)を見て下さい。Lineが、”2″のところで止まっています。ここも1増加している事が確認できます。

もう一度、ステップ実行のアイコンをクリックしてみましょう!

ソースコードの左側の矢印は、更に一段下がっていますね。
「Special Function Registers」Windowのwレジスタの値は、”0x03″が入っていますね。先にwレジスタに代入した値(“1”)と先ほどの命令「addlw 0x02」(wレジスタの値に2を加えて、結果をwレジスタに保存する)で、演算結果がwレジスタに保存されています。
ここで「File Registers」Windowのアドレス0x20の値を確認しておきます。アドレス0x20は、汎用レジスタ(我々が使えるメモリ空間)に演算結果を入れる領域”ANS”を設定しています。今は、0(0x00)である事を確認しておきます。

もう一度、ステップ実行のアイコンをクリックしてみましょう!

wレジスタの値が、6になっています。まだ、演算結果を”ANS”に代入していませんので、0x20の値は0です。

最後にもう一度、ステップ実行のアイコンをクリックしてみましょう!

“ANS”の値を確認すると、”0x06″と「1+2+3」の演算結果が入っている事が確認できます。シミュレータを少し触ってみました。後は随時学習の中で触れていきますが、今回の内容で演算の進み方が判ったと思います。
先に説明した「マイコンって何?」の「●PICの中身ってどうなっているのかなぁ?」の図を見ながら、今のwレジスタ、汎用レジスタ、プログラムカウンタへの処理の流れを確認してみて下さい。

★このシミュレータはプログラムが最後の「end」までいくと、最初に戻るようです。WレジスタとPCLが0x00になっている事が確認できます。

PICマイコン(敵)をもう少し知る(1/5)へ続く>

タイトルとURLをコピーしました