何故コンパイラーが800番地ではなく, 0番地をコールするのですか?

PICのROMアドレス・フィールドの8-10bitはオペコードとチップに依存します。アドレス・ビットの残りはレジスタにより決定されます。 例えば、174チップでアドレス800を1ページ目からコールすると:

	BSF 0A,3
	CALL 0

この様に800Hのコールなのに000hが呼び出されているように見えますが、ビット11がPCLATHレジスタ 0Ahのビット 3をセットすることで800Hを指定しています。