Macro funktioniert nicht, was mach ich falsch?

Gast #708692
Lesenswert?

Hallo


Ich möchte ein Macro aufrufen, dem ich sagen kann, wie oft es wiederholt 
werden muß. Bei mir sieht es so aus:
1
.macro schieben
2

3
ldi temp1, @0
4
mov rl_reg, temp1
5
ldi temp1, @1
6
push temp1
7
rcall same
8
rcall schub
9
pop temp1
10
dec temp1
11
brne pc-5
12

13
.endmacro
14

15
;und hier der Befehl:
16

17
schieben 0b00111000,5

Mit 0b00111000 sage ich, in welche Richtung geschoben wird, hat aber 
nichts mit meinem Problem zu tun.
Also ich lade den Wert 5 in temp1, pushe ihn, da ich temp1 in rcall same 
und rcall schub für andere Berechnungen brauche, danach pope ich temp1 
wieder und dekerementiere temp1. Wenn nicht null, dann springe 5 
Schritte zurück. Bei mir wiederholt sich dann aber die Routine nicht 
5mal sondern 50mal oder so.

Was hab ich da falsch gemacht. Wer kann mir da bitte weiterhelfen?
Gast #708713
Lesenswert?

Hallo Oops.

Bei same und schub benötige ich zwar temp1, muß aber nich pushen und 
popen.

Ehrlich gesagt habe ich es auch schon mit dem Register r23 probiert, das 
ich aber im ganzen Programm nicht brauche. Dadurch brauch ich r23 aauch 
nicht pushen und popen. Funktioniert leider auch nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren