> John N. Power wrote: > suspect that you could do something like: > > abc EQU 0x100 >> ... >> goto abc >> >> and it would probably be accepted by MPASM. After all, >> abc would appear in the symbol table (see the listing >> file, and it will be there). > Yes, but then, "abc" isn't a "label", it's still just a symbol > holding a value used as an address in the goto instruction... > And, even if this "works", it would be much better to actualy > label the relevant *source line* with the "label" abc, of course. > Jan-Erik. Yes, it would be better. In the "old days", when addresses were just numbers, it was useful at times to define assembler variables with EQU or SET, perform arithmetic on them (possibly in conditional assembly mode), and then use them as addresses in instructions. Very bad, but useful. Two things changed this: relocatable assemblers for microprocessors and segmented addresses. Both of these defined addresses as more than just a number. In the former case, addresses could be local or external; in the latter, far or near, with a segment and offset. With this additional information, the assembler could perform type checking on addresses, and now variables were no longer addresses. In absolute mode, entries in the symbol table can be made with EQU, SET, by beginning the name in column 1, or by following the name with a colon. Once the item is in the symbol table, there is no way to tell how it got there. The assembler uses symbols in the table if it needs to do so to satisfy a reference. You can see where this leads. If you really believe in structured programming, this leads to bad habits; if not, then it has a lot of possibilities. John Power -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body