Forum: Mikrocontroller und Digitale Elektronik MOVC und MOVX richtig verwendet?


von Maxim (maxim) Benutzerseite


Lesenswert?

1
                
2
3
READOUT_VALUES: MOVC A, @A+DPTR    
4
    MOV  T_VALUE_H, A        
5
    
6
                INC  DPTR
7
                MOVX A, @DPTR          
8
    MOV  T_VALUE_L, A

Ich möchte mit diesem Code ein Array mit 16-bittigen Zahlen auslesen und 
jeweils das H- oder L-Byte in T_VALUE_H bzw. T_VALUE_L kopieren.

Ist das so richtig?

von Tippgeber (Gast)


Lesenswert?

Glaskugel sagt 8051, schweigt aber zum Rest.
Das hängt von der Außenbeschaltung ab, d.h. wie RAM und ROM ausdekodiert 
werden.

von Maxim (maxim) Benutzerseite


Lesenswert?

Assembler, 8252

Noch eine Frage:

Beim Aufruf von

MOVC A, @A+DPTR

da wird intern zuerst A zum Datenzeiger addiert und dann der Wert der 
Adresse ausgelesen? Also zeigt der Dateinzeiger nach dem Auslesen auf 
A+DPTR? Kann ja sein, dass er dann immernoch auf DPTR zeigt ...

von Peter D. (peda)


Lesenswert?

Maxim W. wrote:

> Ist das so richtig?

Nein, das ist falsch.

Flash: MOVC
xdata: MOVX
idata: MOV @
data: MOV


Peter

von Maxim (maxim) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das dürfte meine Fehler erklären.

Kann bitte jemand mein Unterprogramm anschauen und mir sagen, wie man es 
richtig machen könnte?

Der Quellcode ist voll dokumentiert.

von Maxim (maxim) Benutzerseite


Lesenswert?

Hat sich erledigt, ich habe die ganze Routine umgeschrieben.

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.