何故コンパイラーが800番地ではなく, 0番地をコールするのですか?
PICのROMアドレス・フィールドの8-10bitはオペコードとチップに依存します。アドレス・ビットの残りはレジスタにより決定されます。
例えば、174チップでアドレス800を1ページ目からコールすると:
この様に800Hのコールなのに000hが呼び出されているように見えますが、ビット11がPCLATHレジスタ 0Ahのビット 3をセットすることで800Hを指定しています。
BSF 0A,3
CALL 0