>> I don't say that some knowledge of the asm level can't be beneficial, >> but say that you *need* it is ridiculous. > > Um, not really, does the compiler automatically set the TRIS, > LAT or PORT registers for you? [if I use Jal: the library, not the compiler itself, will take care of=20 that :) ] But that has absolutely nothing to do with assembler versus C. Unless=20 you have a library that shields you from the architecture *of the=20 peripherals* (and you can have such a lib even in asm) you will have to=20 learn the details of that architecture. Totally independent of the=20 language you use. > Some of these things get ingrained in the mind better by using ASM level > code rather than going to the higher level where > it gets abstracted somewhat. I see no merit in that sentence at all. When I program on a Cortex chip=20 I have to check how the peripherals behave, and beside some declarations=20 (that are not part of the compiler but of a vendor-provided library)=20 that let me write SysTick->VAL =3D 0; instead of *((volatile unsigend int *)(0x123456)) =3D 0; the compiler does not help me at all. It is still up to me to read and=20 understand the SysTick peripheral. But I don't need to know whether=20 Cortex, ARM7, or even MIPS machine instructions are used to implement my=20 HLL statements. Again, there are circumstances where some knowledge of assembly is=20 beneficial, most notably in very timing critical code, compiler errors,=20 and code size issues. But that's stuff for a seasoned professional, not=20 for someone who is starting with PICs. --=20 Wouter van Ooijen -- ------------------------------------------- Van Ooijen Technische Informatica: www.voti.nl consultancy, development, PICmicro products docent Hogeschool van Utrecht: www.voti.nl/hvu --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .