-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 To clarify >An "assembly" compiler does bugger all to the code, >other than fill in the macros and equates, take out the >comments, error trap etc. There is no "assembly" compiler. It's an assembler. It makes machine code out of assembler statements and directives. RETLW 8 is exactly one word of assembler, and never anything else. A compiler takes high level instructions, like "let A=25 Let B=9.72 Let C=A*sqrt(B)" and makes machine code. You can find out how, but the whole point is that you not look at what it's doing. Theoretically, you don't care. A small change in some part of the code could theoretically result in many changes all through the generated machine code. >The code generated is pretty much what the programmer >wrote line for line. So yes the programmer has a VERY >big influence on how good the code is but not the >compiler. It damn well better be EXACTLY what I wrote, line for line! If not, it's broken. >Where as a C compiler is a more "removed" from the PIC >instruction set and therefore presents a variable from one >compiler to the next, this is on top of the idiot behind the >keyboard. Here I agree. C is to some extent portable, and it encourages you to ignore the machine's internal architechture and limitations/abilities. The problem can crop up when C does something that is maybe locally optimized, but globally awkward. Maybe allocating registers for infrequent tasks and using ram for high speed tasks. -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 6.5.2 for non-commercial use iQA/AwUBOPVJOYFlGDz1l6VWEQLoNQCgyXiOaMFimuHtP7oZRvxHWT/n7goAn259 J2YUBNxLPvhJSgAvF++coBAg =ksHx -----END PGP SIGNATURE-----