Hello, PIC newbie here. I have a couple of questions that have come up over the past month or so. Neither one is a burning issue, I'd just like to know the answers, or at least collect a few opinions. First, refer to the documentation for the RRF and RLF instructions in MicroChip's Mid-Range MCU manual. I have a question about the contents of the W register after either of these instructions are executed. The examples (pages 29-36 and 29-37) show that the contents of W are not defined prior to executing the instruction, but then they show that W contains 0x17 after execution. The W reg is not the destination for the instruction, which is given as RRF INDF,1. The bit-shifted value ends up in the register whose pointer is in FSR, just as I expect. What I do not expect or understand is why W would contain a value that doesn't have any obvious relationship to the contents of the destination register. I understand the rest of the "Example 2" code just fine - the contents of the target register and the carry bit are just what I expect. How does W get set to 0x17? Or does it? I wonder if that is just an arbitrary example. If so, it is confusing. Second, I'm wondering just how much use most programmers make of the assembler directives. There are a LOT of directives available, yet when I look at other folk's source code it seems that only a very few directives ever actually show up in the code. The #include, EQU, and a few others are very common, as is using $ to refer to the PC. That seems about it. For example, I'd expect to see more use of DA, DT, BANKISEL, and BANKSEL. Are there non-obvious drawbacks to using the MPASM directives? Thanks, Glenn Minch -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist