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 
MOVFW 20

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