Summary: The symbol "$" in the PIC assembler is used to refer to the value of PC for the current line in the assembler. The operation of the PIC itself is irrelevant, in particular as the assembled code is an absolute rather than a relative address. The instruction reads as "Stick THIS value in the program counter and execute the instruction at that location". Relative instructions such as the 68xx(x) processors support may indeed use a value relative to the following instruction, meaning "add this value to the program counter (I don't care whether you increment it before or afterward)". Even in this case it is the assembler's task to hide that from you! The only thing it affects is in fact whether the branch can reach 127 or 128 locations forward or backward. If you must be fussy about it, consider the assembler itself as containing an internal variable (it does) whose value is set to the PC variable at the start of line parsing and to which the symbol "$" refers. Fair enough? Paul B. (And, being initiated on Synertek/ Motorola systems, I cannot conceive why notations other than "$" for hex numbers exist!)