> Interesting. I would have listed "global register allocation" as a clear > advantage of asm (though perhaps not relevant so much on PICs.) You can > save a lot of time in speed critical code by having all your important data > in regsiters rather than ram (in a register-rich architecture, anyway) and > RESTRICTING the usage of those registers from general purpose functions. > (I don't really see why a C compiler couldn't do this, if it allowed > global variables to be defined "register" and took that "suggestion" > seriously, but I don't know of any compilers that actually DO that.) IMHO the bottom line of C versus Asm is that - an Asm programmer will outperform any C (or other HLL) compiler any time *given enough time* (enough might mean an awfull amount of time, maybe even more than it took to write the compiler) - a compiler wil outperform the Asm programmer any time *when he is really short on time" - most projects will have some optimal division between HLL and Asm, depending mainly on the balance between time- and cost-to-market versus code size and speed Compilers shine on aspects that are well-understood in concept but tedious to do by hand, like static (pre-calculated) -stack allocation, applying 100 fixed patterns to aproblem to find the best. Humans shine in finding novel ways to optimize (and novel ways to screw things up). Wouter (I dumped Asm to write my own compiler)