Los registros del procesador se emplean para controlar instrucciones en ejecuci�n, manejar direccionamiento de memoria y proporcionar capacidad aritm�tica. Los registros son direccionables por medio de un nombre. Los bits por convenci�n, se numeran de derecha a izquierda, como en:
Los registros internos del procesador se puede clasificar en 6 tipos diferentes
Registros de segmento
Un registro de segmento tiene 16 bits de longitud y facilita un �rea de memoria para direccionamiento conocida como el segmento actual.
Registro CS. El DOS almacena la direcci�n inicial del segmento de c�digo de un programa en el registro CS. Esta direcci�n de segmento, mas un valor de desplazamiento en el registro apuntador de instrucci�n (IP), indica la direcci�n de una instrucci�n que es buscada para su ejecuci�n.
Registro DS. La direcci�n inicial de un segmento de datos de programa es almacenada en el registro DS. En t�rminos sencillos, esta direcci�n, mas un valor de desplazamiento en una instrucci�n, genera una referencia a la localidad de un byte especifico en el segmento de datos.
Registro SS. El registro SS permite la colocaci�n en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la direcci�n de inicio del segmento de pila de un programa en le registro SS. Esta direcci�n de segmento, mas un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo direccionada.
Registros ES. Alguna operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (�ndice). Un programa que requiere el uso del registro ES puede inicializarlo con una direcci�n de segmento apropiada.
Registros FS y GS. Son registros extra de segmento en los procesadores 80386 y posteriores.
Registros de prop�sito general.
Los registros de prop�sito general AX, BX, CX y DX son los caballos de batalla del sistema. Son �nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja". Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.
Registro AX. El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritm�tica. Por ejemplo, las instrucciones para multiplicar , dividir y traducir suponen el uso del AX. Tambi�n, algunas operaciones generan c�digo mas eficiente si se refieren al AX en lugar de a los otros registros.
Registro BX. El BX es conocido como el registro base ya que es el �nico registro de prop�sito general que puede ser �ndice para direccionamiento indexado. Tambi�n es com�n emplear el BX para c�lculos.
Registro DX. El DX es conocido como l registro de datos. Alguna operaciones de entrada/salida requieren uso, y las operaciones de multiplicaci�n y divisi�n con cifras grandes suponen al DX y al AX trabajando juntos.
Registro de Apuntador de Instrucciones.
El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de direcci�n de la siguiente instrucci�n que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instrucci�n actual dentro del segmento de c�digo que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.
En el ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H. Para encontrar la siguiente instrucci�n que ser� ejecutada, el procesador combina las direcciones en el CS y el IP:
Segmento de direcci�n en el registro CS: 25A40H
Desplazamiento de direcci�n en el registro IP: + 412H
Direcci�n de la siguiente instrucci�n: 25E52H
Registros Apuntadores.
Los registros SP (apuntador de la pila) Y BP (apuntador de base) est�n asociados con el registro SS y permiten al sistema accesar datos en el segmento de la pila.
Registro SP. El apuntador de la pila de 16 bits esta asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que esta siendo procesada en la pila. Los procesadores 80386 y posteriores tienen un apuntador de pila de 32 bits, el registro ESP. El sistema maneja de forma autom�tica estos registros.
En el ejemplo siguiente, el registro SS contiene la direcci�n de segmento 27B3[0]H y el SP el desplazamiento 312H. Para encontrar la palabra actual que esta siendo procesada en la pila, la computadora combina las direcciones en el SS y el SP:
Registro BP. El BP de 16 bits facilita la referencia de par�metros, los cuales son datos y direcciones transmitidos v�a pila. Los procesadores 80386 y posteriores tienen un BP ampliado de 32 bits llamado el registro EBP.
Registros Indice.
Los registros SI y DI est�n disponibles para direccionamiento indexado y para sumas y restas.
Registro SI. El registro �ndice fuente de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI esta asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el ESI.
Registro DI. El registro �ndice destino tambi�n es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el EDI.
Cualquiera de estos registros puede utilizarse como fuente o destino en operaciones aritm�ticas y l�gicas
Indicadores (flags)
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits m�s significativos est�n indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno (esto tambi�n ocurr�a en los procesadores anteriores).
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o "pr�stamo" (en caso de resta) desde el bit de orden m�s significativo del resultado. Este indicador es usado por instrucciones que suman o restan n�meros que ocupan varios bytes. Las instrucciones de rotaci�n pueden aislar un bit de la memoria o de un registro poni�ndolo en el CF.
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un n�mero par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "pr�stamo" del nibble (cuatro bits) menos significativo al nibble m�s significativo. Este indicador se usa con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operaci�n es cero.
SF (Sign Flag, bit 7): Refleja el bit m�s significativo del resultado. Como los n�meros negativos se representan en la notaci�n de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el procesador est� en modo paso a paso. En este modo, la CPU autom�ticamente genera una interrupci�n interna despu�s de cada instrucci�n, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instrucci�n por instrucci�n.
IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupci�n externas enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las interrupciones no enmascarables y las internas siempre se reconocen independientemente del valor de IF.
DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrir�n "auto-decremento", esto es, se procesar�n las cadenas desde las direcciones m�s altas de memoria hacia las m�s bajas. Si vale 0, habr� "auto-incremento", lo que quiere decir que las cadenas se procesar�n de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operaci�n aritm�tica con signo, esto es, un d�gito significativo se perdi� debido a que tama�o del resultado es mayor que el tama�o del destino.
El procesador Z80
Registros de prop�sito general
El Z80 posee 14 registros de prop�sito general de 8 bits denominados A, B, C, D, H, L y A', B', C', D', H' , L'. Solamente un set de siete registros y el correspondiente registro de Flags F pueden estar activos al mismo tiempo. Una instrucci�n especial selecciona A y F o A' y F' mientras que otra instrucci�n selecciona B, C, D, E, H, L o C', D', E' ,H' L'.
El programador puede cambiar r�pidamente de un conjunto de registros de prop�sito general a otro. Esto proporciona una mayor capacidad de almacenamiento en registros. El acceso a datos presentes en registros de la CPU es mucho m�s r�pido que el acceso a datos en memoria.
Los registros pueden agruparse de a pares formando registros de 16 bits. Estos son los pares BC, DE y HL (sus equivalentes primas tambi�n pueden agruparse).
Flags
Aunque los Flags existen f�sicamente dentro de la CPU est�n agrupados l�gicamente formando un registro. Los Flags del Z80 son los siguientes:
Flag de Cero(Z):
Toma el valor 1 si el resultado de una operaci�n es cero. Es el bit seis.
Flag de signo(S):
Toma el valor 1 si el resultado de una operaci�n es negativo. Es el bit siete.
Flag de Carry(C):
Este flag es afectado por las instrucciones de desplazamiento y es puesto en 1 � 0 seg�n el valor del bit desplazado. Tambi�n es afectado por las operaciones aritm�ticas. Este flag es el bit cero.
Flag de Paridad y overflow(P/V):
En el caso de paridad, se pone en 1 si el resultado de una operaci�n posee un n�mero par de unos. Cuando el flag P/V se usa para representar overflow, el flag se pone en 1 si ocurre un overflow despu�s de una operaci�n aritm�tica. Este flag es el bit 2.
Flag H y N:
Son dos Flip Flop que no pueden ser examinados por las instrucciones de salto condicional. El Z80 los usa para las operaciones BCD. H representa el rebalse que genera considerando los cuatro bits menos significativos del resultado y N es el flag de resta, el cual se activa para indicar si la �ltima instrucci�n ejecutada fue suma o resta. En el caso general, una instrucci�n de resta coloca en 1 el flag N y una instrucci�n de suma lo coloca en 0. Los Flags H y N son los bits 4 y 1 respectivamente.
Registros de prop�sito especial
Program Counter:
Es un registro de 16 bits que indica la direcci�n de la pr�xima instrucci�n ejecutar. Las instrucciones del Z80 pueden contar de uno, dos, tres o cuatro bytes.
Stack-Pointer:
Es un registro de 16 bits que indica la direcci�n de una memoria RAM externa denominada Stack. El objetivo de esta �rea de memoria es proporcionar un medio de almacenamiento temporal de los registros del usuario, registro de Flags y del program Counter. La provisi�n de Stack es fundamental para operaciones tales como los llamados a sub-rutinas e interrupciones.
Registros �ndices IX e IY:
Estos registros son de 16 bits, dise�ados para permitir un direccionamiento indexado en los programas del Z80. Cuando se ejecuta una instrucci�n en un modo de direccionamiento indexado, se usa uno de los dos registros �ndices para calcular la direcci�n del operando.
Registro de interrupciones I:
Es un registro de 8 bits que puede ser cargado para especificar el byte m�s significativo de una direcci�n de memoria. El byte menos significativo es proporcionado por el dispositivo que solicita la interrupci�n.
Registro de refresh de memoria R:
Es un registro especial dise�ado para proporcionar un refresh autom�tico de las memorias RAM din�micas.
Registro de instrucciones:
El registro de instrucciones tiene por misi�n almacenar el c�digo de operaci�n de la instrucci�n le�da desde memoria. Este c�digo es descodificado y con esta informaci�n se dirigen todos los micro-pasos.
Si llegaste a esta pagina desde un buscador
haz click aqui para ir a la pagina principal