Hallo, Ich möchte den Z-pointer um einen bzw mehrere erhöhen oder veringern, dabei aber nichts laden oder abrufen (aus dem SRAM). Wie kann ich das in Assembler machen?
Derda schrieb: > Hallo, > Ich möchte den Z-pointer um einen bzw mehrere erhöhen oder veringern, > dabei aber nichts laden oder abrufen (aus dem SRAM). Wie kann ich das in > Assembler machen? Auch der Z-Pointer ist ein mehr oder weniger normales Register (Registerpärchen R30, R31), auf das ein add angewendet werden kann. in deinem Fall dann eben ein addw
Welchen Prozessor hast du denn? Falls es ein Mega8 ist, musst du nur "SUBI" oder "ADWI" verwenden. Eigentlich kannst du den 16bit Pointer in zwei 8bit Register aufteilen: also: ADIW ZL, 23 ;Nur von 0 bis 63! oder: SUBI ZL, LOW(533) SUCI ZH, HIGH(533) ;Bin mir nicht ganz sicher julian
Der AVR-Befehlssatz ist in der DOC0856.PDF erklärt http://www.atmel.com/atmel/acrobat/doc0856.pdf adiw ZH:ZL,63 ; Add 63 to the Z-pointer(r31:r30) sbiw YH:YL,63 ; Subtract 63 from the Y-pointer(r29:r28)
Danke für eure schnellen Antworten, damit hat sich das Problem gelöst (-:
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.