.include "m8def.inc" .def temp = r16 .def ergebniss = r17 ldi temp, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, temp ldi temp, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, temp ldi temp, 0xFF out DDRB, temp ;B out loop: ldi r20, 0x0F ;Zahl 1 PUSH r20 ;Parameter werden übergeben ldi r21, 0x0F ;Zahl 2 PUSH r21 rcall addiere POP temp POP ergebniss out PORTB, ergebniss ;Ausgabe rjmp loop addiere: PUSH ZH PUSH ZL ;Zeiger wird gesichert PUSH r20 PUSH r21 ;Register wird gesichert ldi temp, SPL ;Zeiger Z soll auf auf die Adresse der aktuellen Stapelposition zeigen MOV ZL, temp ldi temp, SPH MOV ZH, temp ldi temp, 6 ADD ZL, temp LD r20, Z LD r21, -Z ADD r20, r21 ST Z, r20 POP r21 POP r20 POP ZL POP ZH ret ende: rjmp ende