Hallo, muss man bei den st Befehl irgend was beachten. Sobald ich den Verwende spackt mein ganzes Programm. Egal ob st y, r16 oder st z, r16 Die Register YL,YH bzw. ZL,ZH werden nur für die Adresse zuweisung verwendet, sonst nirgends: ldi temp, (maxx+1) mov rm1, temp mov rm2, dy rcall mul8 mov YL, rel mov YH, reh add YL, dx brcc PC + 2 inc YH Wenn ich den Befehl aus kommentiere oder durch ein sts ersetze funtkioniert es. Grüße
Solange die Registerpaare ZL/ZH bzw. YL/YH die richtige Adresse enthalten sollte dein Programm problemlos laufen. Wenn du die allerdings durch falsche Zeiger z.B. die Return-Adressen auf dem Stack überschreibst, kann's daneben gehen.
Hmm... Wenn ich bei 0 Anfange und höchsten 80 wird, dann solltest doch locker reichen, oder?
Hmm...vielleicht verstehe ich das auch mit den High/Low Dinger falsch Ich denke: Der Pointer Y besteht aus YL und YH. YL enthält die "niedrigen Werte" als z.B. bei 1000 als Zahl: YH | YL 00000011 11101000 Oder ist das falsch? Grüße
Mit 0 kannst du nicht anfangen, da ja dort die Register 0-31 gefolgt von den I/O-Registern liegen. Die erste SRAM-Adresse ist $60. Bei den grossen Atmels mit zusätzlichem I/O (z.B: Mega 128) $100.
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.