Diferencia entre revisiones de «Registros del CPU - MC9S08QE128»

De Wikitronica
Saltar a: navegación, buscar
(Registro SP)
Línea 3: Línea 3:
  
 
[[Image:Registros del CPU.png|thumb|490px| right]]
 
[[Image:Registros del CPU.png|thumb|490px| right]]
 +
 +
 +
 +
 +
 +
 +
 +
  
 
== Introducción ==
 
== Introducción ==
Línea 65: Línea 73:
 
STHX  Memoria      ; Se guarda el resultado en la variable "suma"   
 
STHX  Memoria      ; Se guarda el resultado en la variable "suma"   
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
== Registro SP ==
 +
 +
 +
El registro SP es un registro de 16 bits, que funciona como un apuntador a la próxima dirección disponible en donde se puede guardar un dato en la pila (stack). La pila, es un espacio de memoria muy útil para guardar las direcciones de memoria y los registros más importantes a donde debe regresar el CPU luego de una interrupción o de una llamada a subrutina (para más información ver el artículo [[Interrupciones]].También se utiliza para guardar variables locales, o para realizar operaciones aritméticas. Existen muchas instrucciones que involucran al registro SP, para sacar o meter datos en la pila, entre otras.
 +
 +
 +
 +
La pila puede localizarse en cualquier parte de la memoria RAM, simplemente cambiando la dirección del registro SP. Es importante destacar que mientras los datos de memoria se van guardando desde menores a mayores direcciones de memoria, la pila guarda sus datos en sentido inverso, es decir, la pila va creciendo hacia menores direcciones de memoria. Por ello, se suele inicializar el registro SP al final de la memoria RAM, para de este modo darle mayor espacio de memoria a la pila y evitar incidentes de que se superpongan datos que se guardan en la pila con los datos que se van guardando en otras posiciones de la memoria RAM.
 +
  
  

Revisión del 19:18 24 mar 2013

Registros del CPU.png





Introducción

Un registro es una memoria de alta velocidad, que se utiliza en los microprocesadores para acceder a información importante de manera rápida. Generalmente, los registros se miden de acuerdo al número de bits que almacenan, (por ejemplo, registros de 8 bits o de 16 bits) y pueden contener datos, direcciones de memoria o información acerca del estatus del sistema.


En el caso de los registros del CPU del MC9S08QE128, se refieren a los registros más importantes del CPU que tienes diferentes funciones. Algunos indican el estatus general del sistema así como otros guardan datos o direcciones importantes. Al realizar la simulación de un programa en CODEWARRIOR, podemos observar en un recuadro los datos que guardan estos registros, para tener una idea general de lo que está sucediendo en el DEMOQE. En este artículo mencionaremos cinco, que son los más importantes y los que más se utilizan al momento de programar.


Acumulador

El acumulador es un registro de propósito general de 8 bits, donde se guardan temporalmente datos con los cuales se ejecutará una operación lógica o aritmética por la ULA (Unidad Aritmético- Lógica) del CPU. Además, generalmente luego de ejecutarse estas operaciones, el resultado suele guardarse en el acumulador. Muchas instrucciones utilizan al acumulador como intermediario para ejecutar ciertas funciones. Así, se pueden cargar datos al acumulador desde direcciones de memoria, o también se puede guardar el dato contenido en el acumulador en alguna dirección.

Cabe destacar además que el reset no tiene ningún efecto sobre el acumulador.

Por ejemplo:


LDA  #$01         ; Se carga el número 01 en hexadecimal al acumulador
ADD  #$02         ; Se suma el número 02 en hexadecimal al valor en el acumulador y se guarda en el acumulador

STA  Suma         ; Se guarda el resultado en la variable "suma"

La mayoría de las instrucciones del DEMOQE utilizan al acumulador. Para saber en detalle cómo lo utilizan, se debe revisar el manual de instrucciones.



Registro H:X

El registro H:X es un registro de propósito general de 16 bits, que pueden ser tratados como dos registros separados, es decir, como un registro H y un registro X de 8 bits cada uno. El registro X almacena los 8 bits menos significativos, y el registro H los 8 bits más significativos. Todas las instrucciones de direccionamiento indexado utilizan este registro, ya que es útil para guardar direcciones de memoria por tratarse de un registro de 16 bits. Así, pueden direccionarse muchas más posiciones de memoria que con un registro de 8 bits. El registro X puede ser manipulado de muchas maneras dependiendo de la instrucción que se esté utilizando. Puede ser incrementado, decrementado, transferido al acumulador, entre otras.

El registro H:X es especialmente útil cuando se quiere manipular directamente una dirección de memoria, y realizar operaciones aritméticas o lógicas con ella.

Además, durante el reset se coloca el contenido del registro H en $00, pero no tiene ningún efecto sobre el registro X.

A continuación se mostrará un ejemplo de como realizar operaciones con el registro H:X


LDHX  #$00         ; Se carga el número 00 en hexadecimal al registro H:X
TXA                ; Se transfiere el valor del registro X al acumulador
ADD #$05           ; Se suma el valor 05 al acumulador
TAX                ; Transfiere el valor del acumulador al registro X

                   ; En el registro H:X se encuentra el valor binario %00000000 00000101 ($0005 en hexadecimal)

STHX  Memoria      ; Se guarda el resultado en la variable "suma"


Registro SP

El registro SP es un registro de 16 bits, que funciona como un apuntador a la próxima dirección disponible en donde se puede guardar un dato en la pila (stack). La pila, es un espacio de memoria muy útil para guardar las direcciones de memoria y los registros más importantes a donde debe regresar el CPU luego de una interrupción o de una llamada a subrutina (para más información ver el artículo Interrupciones.También se utiliza para guardar variables locales, o para realizar operaciones aritméticas. Existen muchas instrucciones que involucran al registro SP, para sacar o meter datos en la pila, entre otras.


La pila puede localizarse en cualquier parte de la memoria RAM, simplemente cambiando la dirección del registro SP. Es importante destacar que mientras los datos de memoria se van guardando desde menores a mayores direcciones de memoria, la pila guarda sus datos en sentido inverso, es decir, la pila va creciendo hacia menores direcciones de memoria. Por ello, se suele inicializar el registro SP al final de la memoria RAM, para de este modo darle mayor espacio de memoria a la pila y evitar incidentes de que se superpongan datos que se guardan en la pila con los datos que se van guardando en otras posiciones de la memoria RAM.



Contributors

JCaceres, Vegabante