On Tue, 22 Feb 2000, Geoff Child wrote: --- [ snip ] --- > Also a question > > buffer = 31 ; String buffer at end of memory. > ASC_0 = '0' ; ASCII numbers: 30h thru 39h. > > Does the above assign the value to hex 31 to a variable called "buffer" and > assign the value to hex 30 to a variable called "ASC_0" or does it set up a > register called "buffer" at hex address 31 and set a register called "ASC_0" > at hex address 30 ('0"). Is "=" the same as "equ" > ad 1. Neither. It says purely the compiler: if you find the word 'buffer', replace it with '31'. It is completely irrelevant what do you intend thereafter. It may be as well a register naming act as well as naming a constant. I guess the 1st assignment would a register, and the 2nd one is a named constant. Note, that the difference is purely the question of the context. E. g. you can write movlw buffer movwf buffer The 1st statement loads the constant 31 to W, the 2nd one moves W into the register #31. ad 2. Almost. Theoretically, equated variables (they are in fact compiler variables, or - if you prefer - symbols) can not be changed afterwards, but assigned can. I hope this helps Imre