Forum: Mikrocontroller und Digitale Elektronik [ASM] ijmp will nicht


von Christian (dragony)


Lesenswert?

Hallo zusammen,

ldi ZL,lo8(cmdswreset)
ldi ZH,hi8(cmdswreset)
rjmp cmdswreset
ijmp


Wenn ich das Programm so laufen lasse, springt es zu cmdswreset und 
alles ist gut. Wenn ich das rjmp auskommentiere, springt er wohl 
irgendwo hin, da der AVR MCU abstürzt.... was mache ich falsch?

von Stefan E. (sternst)


Lesenswert?

1
ldi ZL,lo8(pm(cmdswreset))
2
ldi ZH,hi8(pm(cmdswreset))

von Christian (dragony)


Lesenswert?

Danke, funktioniert. Verrätst du mir noch, was es mit dem pm() auf sich 
hat?

Edit: Habs bei Google gefunden.

von uwe (Gast)


Lesenswert?

pm(x) = x/2

von c-hater (Gast)


Lesenswert?

Christian S. schrieb:

> was mache ich falsch?

Du benutzt den falschen Assembler. Oder alternativ: Du benutzt den 
richtigen Assembler, verstehst ihn aber nicht richtig zu benutzen.

Weil du einfach nicht verstehst, was dein Assembler tut. Das sollte man 
aber. Ist auch viel einfacher als zu verstehen, als etwa, was ein 
C-Compiler tut.

Was aber genauso ist wie beim C-Compiler oder jedem anderen Werkzeug: 
Man muß die Doku lesen, bevor man die Sache benutzt, sonst wird das nix 
vernünftiges...

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
Noch kein Account? Hier anmelden.