DPTR Datenzeiger

Gast #24089
Lesenswert?

Hi!

Ich hab das mit dem Datenzeiger noch nicht richtig verstanden.
Was ich hinbekommen habe ist, mit DB ein Datenfeld zu erzeigen, in dem 
ASCII Zeichen stehen. Vor dem Datenfeld habe ich eine Sprungmarke 
erstellt und mit MOV DPTR,#Sprungmarke das Datenfeld mit dem Datenzeiger 
verknüpft. Nun kann ich die Zeichen auslesen.
Das klappt auch soweit.

Jetzt möchte ich aber den Datenzeiger auf das RAM zeigen lassen, wo dann 
zur Laufzeit dynamisch andere Zeichen stehen können.
Z.B. schreibe ich ab Adresse 40h mehrere ASCII-Zeichen in das RAM.
Wenn ich MOV DPTR,#40h eingebe und dann mit
CLR A
MOVC A,@A+DPTR
; A verarbeiten...
INC DPTR
MOVC A,@A+DPTR
; A verarbeiten...
....
versuche die Zeichen auszulesen, klappt das nicht.

Geht das überhaupt???

Thanks Tabi
Gast #24092
Lesenswert?

Klappt leider auch nicht.
Wenn ich das richtig verstanden habe, steht in DPTR eine Adresse. Mit 
mov DPTR,#Sprungmarke schreibe ich die Adresse des ersten Zeichens der 
im Flash-Speicher stehenden ASCII-Zeichen.
Die unten angegebene Routiene zum Auslesen funktioniert ja auch mit dem 
im Flash-Speicher befindlichem ASCII-Zeichen.

Wenn also meine Annahme richtige ist, dann muss ich doch nur eine 
RAM-Adresse in DPTR schreiben. ODER kann ich das garnicht??? und wenn 
ja, wie?
Gast #24094
Lesenswert?

OK, danke erstmal.

Ich hab das grad ne Menge dazu gelernt. Ich wußte nicht, dass es einen 
externen Datenspeicher gibt.
In meinem Fall wollte ich auf den internen Datenspeicher zugreifen, was 
man ja ganz normal mit MOV macht. Meine ASCII-Zeichen sollen auch im 
internen Datenspeicher stehen. Ein Arbeiten mit DPTR ist in diesem Fall 
also völliger Unsinn.

Thanks Tabi

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