2) Besser:
Code:
Unterprogramm:
IN ZL, SPL Stackpointer nach ZL:ZH
IN ZH, SPH übernehmen
; und mit "Offset" in die Zielregister laden
LDD R25, Z+2 (B+1, siehe oben)
LDD R24, Z+3 (B+0, siehe oben)
LDD R16, Z+4 (A, siehe oben)
;--- irgendwas machen
RET
2) AAAAAAAAber:
Im hauptprogramm müssen jetzt noch die drein gepushten
Parameter wieder weg
Daher sieht das jetzt so aus
Code:
lds r16, A
push r16
lds r16, B+0
push r16
lds r16, B+1
push r16
RCALL Unterprogramm
pop r0 (irgendein Register)
pop r0 (irgendein Register)
pop r0 (hauptsache, der Stack stimmt wieder)
------- jetzt ist alles wieder paletti
Lesezeichen