* RAM interna: La RAM interna del 8051 (128 bytes).
* Registros de funciones especiales (SFRS): Registros utilizados para controlar varios aspectos de la operación del 8051 (por ejemplo, temporizadores, puerto serie, interrupciones).
* RAM externa: Accedido a través del bus de direcciones del 8051 (si está conectada la RAM externa). (Nota:Acceso a RAM externa generalmente requiere secuencias de instrucciones más complejas).
Las instrucciones de transferencia de datos primarias son:
* mov (mover): Esta es la instrucción de transferencia de datos más fundamental. Copia el contenido de una ubicación (fuente) a otra ubicación (destino).
* Sintaxis: `Destino de MoV, fuente`
* Ejemplos:
* `Mov A, R0`:mueve el contenido del registro R0 al acumulador (a).
* `MOV R1, #55H`:mueve el valor inmediato 55H (hexadecimal) al registro R1.
* `Mov R2, @a`:mueve los datos en la dirección de memoria apuntada por el acumulador (a) en el registro R2. (Direccionamiento indirecto)
* `MOV @A+DPTR, R3`:mueve el contenido de R3 a la RAM externa en la dirección calculada agregando los registros del acumulador (a) y el puntero de datos (DPTR). Esto ilustra cómo se puede acceder a RAM externa indirectamente.
* movx (moverse externo): Esta instrucción mueve específicamente los datos entre el acumulador (a) y la RAM externa. Utiliza el registro DPTR (puntero de datos) para abordar la memoria externa.
* Sintaxis: `MOVX A, @A+DPTR` (mueve datos de RAM externa a a) o` Movx @a+dptr, A` (mueve datos de A a RAM externa)
* Push and Pop: Estas instrucciones funcionan con la pila, una estructura de datos LIFO (última entrada, primera salida) generalmente ubicada en la RAM interna.
* empuje: Empuja el contenido del acumulador (a) sobre la pila.
* Pop: Extiende el elemento superior desde la pila en el acumulador (a). El puntero de la pila (SP) se actualiza automáticamente.
* xch (intercambio): Intercambia el contenido del acumulador (a) con el contenido de un registro especificado o ubicación de memoria.
* Sintaxis: `Xch a, ri` (donde RI es un registro R0-R7) o` xch a, @a` (direccionamiento indirecto)
Modos de direccionamiento:
8051 Las instrucciones utilizan diferentes modos de direccionamiento, que incluyen:
* Dirección inmediata: El operando es un valor constante incluido directamente en la instrucción. (`Mov R1, #55h`)
* Registro de direccionamiento: El operando es un registro. (`Mov A, R0`)
* Dirección directa: El operando es una ubicación de memoria especificada directamente por su dirección dentro de la RAM interna. (por ejemplo, `Mov A, 20H` accede a la dirección de RAM interna 20h).
* Dirección indirecta: La dirección del operando se almacena en un registro (generalmente el acumulador A o el DPTR). (`Mov a, @a`;` movx a, @a+dptr`)
Estas instrucciones son la base para la manipulación de datos dentro del 8051. Comprender su sintaxis, los modos de direccionamiento y los roles de registros como el acumulador y el DPTR son cruciales para una programación 8051 efectiva.