|To implement the trick using a zero reading register, i try to find a way |not to use a file register, if i don?t have to. |Some controllers have logic that make unimplemented registers read as '00' |or 'FF'. I could not find any info about PIC behaviour. |Anybody knows? PIC's are documented as having most of their "reserved" registers read as zero. There aren't any registers that are consistently "reserved" among all PICs, though. A fairly universal approach would be to use address 0x7F and make sure to clear it at the start of code. This will waste a byte of RAM on those controllers that have lots, but not on the controllers that have less than 96 bytes. Alternatively, you may be able to take advantage of a register that will always "happen" to contain zero when you need it for that (pro- vided that it's initialized at the start of the code). Iteration counters are a very common case of this: many of them are zero out- side the loop they control. As another side note, if you have an iteration counter which is guar- anteed to be zero when approaching the start of a loop, you may be able to replace, e.g. movlw 8 movwf count with bsf count,3 or [if W holds a value which might be useful within the loop] you could replace movlw 10 movwf count with bsf count,3 bsf count,1 Note that if /count/ is not initially zero, the above instructions may set it to an undesired value.