REGISTROS DEL PROCESADOR



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:


... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Los registros internos del procesador se puede clasificar en 6 tipos diferentes

  1. Registros de segmento
  2. Registros de prop�sito general
  3. Registros de apuntadores
  4. Registros de banderas
  5. Registros de Puntero de instrucci�n
  6. Registros de Pila


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.

Regresar Arriba



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.


Regresar Arriba



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

Regresar Arriba



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.


Regresar Arriba



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.


Regresar Arriba



Registro de Banderas.

De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritm�tica cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la acci�n subsecuente. En resumen, los bits de las banderas comunes son como sigue:


OF (Overflow, desbordamiento). Indica desbordamiento de un bit

de orden alto (mas a la izquierda) despu�s de una operaci�n aritm�tica.


DF (direcci�n). Designa la direcci�n hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.


IF (interrupci�n). Indica que una interrupci�n externa, como la entrada desde el teclado, sea procesada o ignorada.


TF (trampa). Permite la operaci�n del procesador en modo de un paso. Los programas depuradores, como el DEBUG, activan esta bandera de manera que usted pueda avanzar en la ejecuci�n de una sola instrucci�n a un tiempo, para examinar el efecto de esa instrucci�n sobre los registros de memoria.


SF (signo). Contiene el signo resultante de una operaci�n aritm�tica (0 = positivo y 1 = negativo).


ZF (cero). Indica el resultado de una operaci�n aritm�tica o de comparaci�n (0 = resultado diferente de cero y 1 = resultado igual a cero).


AF (acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8 bits para aritm�tica especializada.


PF (paridad). Indica paridad par o impar de una operaci�n en datos de 8 bits de bajo orden (mas a la derecha).


CF (acarreo). Contiene el acarreo de orden mas alto (mas a la izquierda) despu�s de una operaci�n aritm�tica; tambi�n lleva el contenido del ultimo bit en una operaci�n de corrimiento o de rotaci�n. Las banderas est�n en el registro de banderas en las siguientes posiciones:


Las banderas mas importantes para la programaci�n en ensamblador son O, S, Z y C, para operaciones de comparaci�n y aritm�ticas, y D para operaciones de cadenas de caracteres. Los procesadores 80286 y posteriores tienen algunas banderas usadas para prop�sitos internos, en especial las que afectan al modo protegido. Los procesadores 80286 y posteriores tienen un registro extendido de banderas conocido como Eflags.


Regresar Arriba



Registros de PILA

La pila es un �rea de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:


-SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general , el programador no debe alterar su contenido.


-BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su provecho.


Claro que estos nombres y tipos de registros son est�ndar, ya que cada fabricante puede utilizar otros registro que reemplacen a estos o los auxilien, aun as�, los fabricantes que usan otros registro tienen la misma funci�n que los anteriormente mencionados


Ejemplo

Registros de uso general del 8086/8088:

Tienen 16 bits cada uno y son ocho:

  1. AX = Registro acumulador, dividido en AH y AL (8 bits cada uno). Us�ndolo se produce (en general) una instrucci�n que ocupa un byte menos que si se utilizaran otros registros de uso general. Su parte m�s baja, AL, tambi�n tiene esta propiedad. El �ltimo registro mencionado es el equivalente al acumulador de los procesadores anteriores (8080 y 8085). Adem�s hay instrucciones como DAA; DAS; AAA; AAS; AAM; AAD; LAHF; SAHF; CBW; IN y OUT que trabajan con AX o con uno de sus dos bytes (AH o AL). Tambi�n se utiliza este registro (junto con DX a veces) en multiplicaciones y divisiones.


  2. BX = Registro base, dividido en BH y BL. Es el registro base de prop�sito similar (se usa para direccionamiento indirecto) y es una versi�n m�s potente del par de registros HL de los procesadores anteriores.


  3. CX = Registro contador, dividido en CH y CL. Se utiliza como contador en bucles (instrucci�n LOOP), en operaciones con cadenas (usando el prefijo REP) y en desplazamientos y rotaciones (usando el registro CL en los dos �ltimos casos).


  4. DX = Registro de datos, dividido en DH y DL. Se utiliza junto con el registro AX en multiplicaciones y divisiones, en la instrucci�n CWD y en IN y OUT para direccionamiento indirecto de puertos (el registro DX indica el n�mero de puerto de entrada/salida).


  5. SP = Puntero de pila (no se puede subdividir). Aunque es un registro de uso general, debe utilizarse s�lo como puntero de pila, la cual sirve para almacenar las direcciones de retorno de subrutinas y los datos temporarios (mediante las instrucciones PUSH y POP). Al introducir (push) un valor en la pila a este registro se le resta dos, mientras que al extraer (pop) un valor de la pila este a registro se le suma dos.


  6. BP = Puntero base (no se puede subdividir). Generalmente se utiliza para realizar direccionamiento indirecto dentro de la pila.


  7. SI = Puntero �ndice (no se puede subdividir). Sirve como puntero fuente para las operaciones con cadenas. Tambi�n sirve para realizar direccionamiento indirecto.


  8. DI = Puntero destino (no se puede subdividir). Sirve como puntero destino para las operaciones con cadenas. Tambi�n sirve para realizar direccionamiento indirecto.


Cualquiera de estos registros puede utilizarse como fuente o destino en operaciones aritm�ticas y l�gicas

Regresar Arriba



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.


Regresar Arriba



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.

Arriba



regresar


inicio
Si llegaste a esta pagina desde un buscador
haz click aqui para ir a la pagina principal
Hosted by www.Geocities.ws

1