Schreiben in ein 2-Byte-Register aus 1-Byte-Registern

Ich bin ein Assembler-Neuling und versuche, eine Assembler-Routine zu schreiben, um Daten in das EEPROM einer 8051-Variante zu schreiben. (Insbesondere AT89C51CC03 )

Im Datenblatt steht, dass ich zuerst in die Spaltenlatches schreiben muss. Dazu muss ich das DPTR-Register mit der Adresse füllen, die ich schreiben möchte (2 Bytes). Da ich hauptsächlich mit C arbeite, brauchte ich eine Möglichkeit, die Adresse vom C-Code an die Assembler-Routine zu übergeben. Der folgende Link erklärt die Konvention:

http://www.keil.com/support/man/docs/c51/c51_ap_parampassreg.htm

was besagt, dass R2 (MSB) und R1 (LSB) Zeigerparameter zugewiesen werden.

Meine Frage ist, wie kann ich den Inhalt dieser 1-Byte-Register in DPTR verschieben, das ein 2-Byte-Register ist? Ich habe das Gefühl, dass ich das erste Byte, das ich geschrieben habe, überschreiben werde, wenn ich MOV verwende. Und das Handbuch zum Befehlssatz enthält nur ein Beispiel für die Übergabe von Sofortwerten, nicht von Registern.

Es scheint, dass es Register namens DPH und DPL gibt, auf die im 8-Bit-Modus zugegriffen werden sollte keil.com/support/man/docs/is51/is51_ov_cpu8051variants.htm und slideshare.net/thandaiah/8051-microcontroller-notes-continuous ( ab Seite 20).
Dann lass mich doch antworten :)

Antworten (1)

Es scheint, dass es sich um Special Function Registers (SFRs) namens DPH und DPL handelt, die im 8-Bit-Modus zugänglich sein sollten, siehe hier und hier (ab Seite 20).