Du hast Recht, da habe ich gar nicht dran gedacht. D.h. um Kompatibilität zu haben muss man eigentlich zwingend die gleichen Register verwenden.FPK hat geschrieben: Die Kompatibilität zu gcc ist wichtig, es gibt sicherlich genügend Leute, die mit gcc erzeugte Libraries/Object files linken wollen und dann macht das Erfinden eigener Konventionen nur Probleme.
Aus der Beschreibung für die GCC-Registernutzung:
r1 - assumed to be always zero in any C code, may be used to remember something for a while within one piece of assembler code, but must then be cleared after use (clr r1). This includes any use of the [f]mul[s] instructions, which return their result in r1:r0. Interrupt handlers save and clear r1 on entry, and restore r1 on exit (in case it was non-zero).
http://www.nongnu.org/avr-libc/user-man ... _reg_usage