Frequently Asked Questions

Instead of A0, the compiler is using register 20. Why?

The PIC RAM address field in opcodes is 5-7 bits long, depending on the chip. The rest of the address field comes from the status register. For example, on the 74 chip to load A0 into W you will see:

BSF 3,5 

Note that the BSF may not be immediately before the access since the compiler optimizes out the redundant bank switches.

C-Aware IDE Demo
Textbook to Learn C for PIC
C Workshop Compiler