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.
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.
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[u]] 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