Forum: Mikrocontroller und Digitale Elektronik Daten indirekt aus Rom laden


von Scales O. (scales)


Lesenswert?

ich hab in R1 eine Adresse die auf einen bestimmten Bereich im Code
zeigt,
an der Stelle sind Werte gespeichert die ich auslesen will

aber wenn ich nun

mov a, @r1

schreibe, lädt er zwar von der richtigen Adresse, aber aus dem RAM und
nicht vom ROM, auf dem mein Code ist

wie kann ich in dazu bringen das Zeug aus dem ROM zu laden?

von crazy horse (Gast)


Lesenswert?

dazu musst du den movc-Befehl benutzen.
Entweder adressiert über den DPTR
movc, A, @A+DPTR
oder über den aktuellen PC
movc A, @Q+PC

von google hupf (Gast)


Lesenswert?

also könnte ich

mov DPTR, 0
movc a, @r1+DPTR

schreiben, und er würde einfach den durch r1 adressierten wert in a
speichern?
oder muss man DPTR anders auf 0 setzen?

von crazy horse (Gast)


Lesenswert?

Wie kommt nur das Q da oben bei mir rein??
mov DPTR, 0
mov A, r1    //Adresse nach
movc A, @A+DPTR

von google hupf (Gast)


Lesenswert?

dachte das wäre ein schreibfehler, wie das "," nach dem movc ;-)
was bedeutet denn Q?

nur für Akkumulator?

von crazy horse (Gast)


Lesenswert?

Das Q gehört da gar nicht rein, es liegt nur zu nahe am A bei meiner
Tastatur :-)
Geht alles nur über den Akku.

von Scales O. (scales)


Lesenswert?

das stimmt aber schon wenn ich

mov DPTR, #0

statt

mov DPTR, 0

schreibe, oder?

anders wollte es der Assembler jedenfalls nicht
und eigentlich ist 0 ja ne Konstante

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.