Daily Archives: 2012年7月22日

[PIC]アセンブラで数値を記述する場合は基数指定が必須です

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

PICのアセンブラで基数を明示せずに数字を指定すると、通常は16進数として認識されます。 例えばPIC16F84で、以下のコードを実行すると… LIST P=16F84 INCLUDE P16F84A.INC ORG 0   MAIN MOVLW 0x10 GOTO MAIN   END LIST P=16F84 INCLUDE P16F84A.INC ORG 0 MAIN MOVLW 0x10 GOTO MAIN END このように、Wレジスタに0x10(10進数で”16″)がセットされます。 ですがMPLABを使用している場合、この振…


続きを読む

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

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

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


続きを読む