Regarding that C-cult (which I am part of
I do know some assembler, but never got to like it (except for VERY limited code portions where I need absolute control).
Try to learn assembler programming on a PIC and then move to a 8051 or AVR or some other platform - and start from scratch... (especially when moving from a RISC architecture to a CISC architecture or vice versa).
With C it's the same language, same syntax, etc. C allows me to program a microcontroller much the same way I do on the PC.
Most decent compilers also come with good libraries; e.g. doing an ADC acquisition is
unsigned my_val;
my_val = adc_read (0);
(plus one line to set the appropriate pin as analog). Try to do this in assembler and you're looking at a page of cryptic code.
Try do keep your program modular (and thus much easier to maintain) in assembler - a nightmare. Same is easy in C, since there are functions, local variables, etc.
IMHO assembler was a decent fit for small devices, but with the increase in computing power and memory even on 8-bit microcontrollers that's losing its appeal. From my own experience any good C compiler produces code that is pretty close in speed and compactness to the same program in assembler (and faster and smaller if you're not a good assembler programmer).
Others may (and will) disagree, but I certainly know what I dislike about assembler and why. Wouldn't touch it with a long stick for anything longer than a few lines of code. (Ok, the flame war is on
Wolfgang