Hi, Dave > These questions aren't particularly processor-centric: > > Is it true that C compilers do/must push and pop ALL registers on interrupts? > > Is it possible to reserve registers for interrupts? > If not, WHY? I am sure Codevision for the AVR's do not push all registers on interrupts and I believe most modern compilers will not. You can use some registers as "globals" and reserve them for using just inside the interrupts or you can use "temporary" registers to process your data just when you are inside the int routine. Nowadays I code most of the stuff in C and when I get at time critical routines I use assembler mixed with C. Some stuff is as efficient in C as it is in assembler, that is the case of if statments for example and they are much easier to mantain in C. I hate to admit that :-) Some other stuff I prefer to code directly in assembler. Best regards, Alexandre Guimaraes _______________________________________________ http://www.piclist.com View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist