Again you need to look at the generated code to see what is happening. In a Harvard architecture machine like the PIC family the size of a file register or data byte is 8 bits. The size of a program memory address 14 bits for the mid-range family (16F series). Nested IF-ELSE is not the only construct you could use. The switch statement may have an efficient implementation on the PIC. It is important to remember that there is in fact no efficient indirect GOTO or CALL instruction in the midrange architecture. This is not the case for big processors. Let me repeat myself. If you're going to program in C you sometimes have to look at the generated code to see what is going on. You will be amazed and mystified by what you see. Just because you can code it in C, doesn't mean it is always a good thing to do.