Escribir en un registro de 2 bytes desde registros de 1 byte

Soy un novato en ensamblaje y estoy tratando de escribir una rutina de ensamblaje para escribir datos en EEPROM de una variante 8051. (Específicamente, AT89C51CC03 )

En la hoja de datos, dice que primero debo escribir en los pestillos de la columna. Para esto, necesito llenar el registro DPTR con la dirección que quiero escribir (2 bytes). Como estoy trabajando principalmente con C, necesitaba una forma de pasar la dirección del código C a la rutina de ensamblaje. El siguiente enlace explica la convención:

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

lo que dice que los parámetros del puntero se asignan a R2 (MSB) y R1 (LSB).

Mi pregunta es, ¿cómo puedo mover el contenido de estos registros de 1 byte a DPTR, que es un registro de dos bytes? Tengo la sensación de que si uso MOV, sobrescribiré el primer byte que he escrito. Y el manual del conjunto de instrucciones solo proporciona un ejemplo para pasar valores inmediatos, no desde registros.

Parece que hay registros llamados DPH y DPL, que deberían ser accesibles en modo de 8 bits keil.com/support/man/docs/is51/is51_ov_cpu8051variants.htm y slideshare.net/thandaiah/8051-microcontroller-notes-continuous ( página inicial 20).
Entonces déjame convertirlo en una respuesta :)

Respuestas (1)

Parece que son registros de funciones especiales (SFR) llamados DPH y DPL, a los que debería poder accederse en modo de 8 bits, consulte aquí y aquí (a partir de la página 20).