Tag Archives: PICシミュレータ

[PIC]HI-TECH Cのサンプルプログラムを逆アセンブルしてみる

2012年12月2日 (カテゴリ: C#, PIC:, )

前に作りかけたPic16f84のCPUシミュレータですが、暇が出来たので開発を再開させます。 ずいぶん久しぶりなので、何をやってたかを思い出すのを兼ねて、動作確認用サンプルのhexファイルを作る事にします。 今回の対象はHI-TECH Cのコンパイラをインストールしたときに一緒に入っているサンプルPGです。 ファイルは、標準インストールだと以下の辺りに入ってます。 C:\Program Files\HI-TECH Software\PICC\9.83\samples\misc\led.c このプログラムはLEDの点滅プログラムで、コードは以下の通りのシンプルなものです。 “Free…


続きを読む

[C#]Pic16f84シミュレータを作成する

2012年7月28日 (カテゴリ: C#, PIC:)

これまで1ヶ月ほど掛けて、パタヘネ本でCPUの動作原理を勉強してみたり、PICによるアセンブラプログラムの作成を行ってきました。そこで、今回は勉強した成果として、Microchipから発売されているPic16f84のシミュレーターを作成してみます。 いきなり全部作ると大変になるので、今回は大枠を作るために、ADDLW(Wレジスタの加算)とGOTO命令しか解析できない最低限のCPUシミュレータを、C#で構築します。 このシミュレータは、C#上ではクラス(Pic16f84Simulatorクラス)として実装していきます。 まずはプロパティの定義を行います。 class Pic16f84Simula…


続きを読む

[C#]PIC16シリーズのバイナリを逆アセンブルする

2012年7月22日 (カテゴリ: C#, PIC:)

前回、MPLABで生成されたhexファイルを解析するプログラムをC#で用意しました。 今回はこのバイナリ(機械語)を元に、逆アセンブルするプログラムを作成します。 というわけでプログラムです。 13bitの2進データをみて文字列に変換するだけなので、単純に力技です。 今回は分かりやすいように全命令の処理を列挙しましたが、PICの機械語命令は、命令の各bitに何の情報を持たせるかの構成パターン数が少ないので、最適化させればもう少しシンプルに書けそうです。 PICアセンブラ入門 using System;   class Pic16f84 { //***************…


続きを読む

C#でintelのhexファイルフォーマットを解析する

2012年7月21日 (カテゴリ: C#, PIC:)

C#でintelのhexファイルフォーマットの解析プログラムを作成したので,公開しておきます。 hexファイルフォーマットはアスキー形式の可変長テキストですが、シンプルな作りになっているので読み込みは簡単です。 ファイルフォーマットの詳細が知りたい場合は、以下のエントリで説明しています。興味があれば参考にしてください。 MPLABで作成されたhexファイルのフォーマットを解析する ここで読み込んだ情報を元にPIC16F84A用のバイナリを逆アセンブルしてみる予定ですが、本クラス自体はターゲットデバイス非依存な作りです。 (pic以外用のROMデータでも解析できるはずです) というわけで、解析処…


続きを読む