Professional Documents
Culture Documents
Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y
proporcionar capacidad aritmtica. Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta
64 bits dependiendo del microprocesador que se emplee. Los registros son direccionales por medio de una vieta, que es una
direccin de memoria. Los bits, por conveniencia, se numeran de derecha a izquierda (15,14,13. 3,2,1,0), los registros estn
divididos en seis grupos los cuales tienen un fin especfico. Los registros se dividen en:
Registros de segmento
Registros de apuntadores de instrucciones
Registros apuntadores
Registros de propsitos generales
Registro ndice
Registro de bandera.
2. Registros de segmento.
Un registro de segmento se utiliza para alinear en un lmite de prrafo o dicho de otra forma codifica la direccin de inicio de
cada segmento y su direccin en un registro de segmento supone cuatro bits 0 a su derecha.
Un registro de segmento tiene 16 bits de longitud y facilita un rea de memoria para direccionamientos conocidos como el
segmento actual. Los registros de segmento son:
Registro CS
Registro DS
Registro SS
Registro ES
Registro FS y GS
Registro CS.
El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS. Esta direccin de segmento,
ms un valor de desplazamiento en el registro de apuntado de instruccin (IP), indica la direccin de una instruccin que es
buscada para su ejecucin. Para propsito de programacin normal, no se necesita referenciar el registro CS.
Registro DS.
La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. En trminos sencillos, esta
direccin, ms un valor de desplazamiento en una instruccin, genera una referencia a la localidad de un bytes especifico en el
segmento de datos.
Registro SS.
El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS
almacena la direccin de inicio del segmento de pila de un programa en el registro SS. Esta direccin de segmento, ms un
valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que est siendo
direccionada. Para propsitos de programacin normal, no se necesita referenciar el registro SS.
Registro ES
Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta de segmento para manejar el
direccionamiento de memoria. En este contexto, el registro ES est asociado con el registro DI (ndice). Un programa que
requiere el uso del registro ES puede inicializarlo con una direccin apropiada.
Registros FS y GS.
Son registros extra de segmento en los procesadores 80386y posteriores a estos procesadores.
3. Registro Apuntador de instrucciones.(IP)
El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin que se
ejecuta. El registro IP est asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del segmento
de cdigo que se est ejecutando actualmente. En el ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H.
Para encontrar la siguiente instruccin que ser ejecutada el procesado combina las direcciones en el CS y el IP as:
Segmento de direccin en el registro CS: 25A40H
Desplazamiento de direccin en el registro IP: + 412H
Direccin de la siguiente instruccin: 25E52H
Registros apuntadores.
Los registros apuntadores estn asociados con el registro SS y permiten al procesador accesar datos en el segmento de pila los
registros apuntadores son dos:
El registro SP
El registro BP
Registro SP.
El apuntador de pila IP de 16 bits est asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la
palabra actual que est siendo procesada en la pila.
El ejemplo siguiente el registro SS contiene la direccin de segmento 27B3[0]H y el SP el desplazamiento 312H Para encontrar
la palabra actual que est siendo procesada en la pila el microprocesador combina las direcciones en el SS y el PP:
Direccin de segmento en el registro SS: 27B30H
Desplazamiento en el registro SP: + 312H
Direccin en la Pila: 27E42H
27B3[0]H 312H
Direccin del segmento SS Desplazamiento del SP
Registro BP.
El registro BP de 16 bits facilita la referencia de parmetros, los cuales son datos y direcciones transmitidos va lapida.
4. Registros de propsitos generales.
Los registros de propsitos generales AX, BX, CX y DX son los caballos de batalla o las herramientas del sistema. Son los
nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ltimo byte de la
izquierda es la parte "alta", y el ltimo 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 si nombre. Las instrucciones siguientes mueven ceros
a los registros CX, CH y CL respectivamente.
Mov CX, 00
Mov CH, 00
ov CL, 00
Los procesadores 80386 y posteriores permiten el uso de todos registros de propsito general, mas versiones de 32 bits; EAX,
EBX y EDCX.
Registros AX.
El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la
aritmtica. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX. Tambin, algunas
operaciones generan cdigo ms eficientes si se refiere al AX en lugar de los otros registros.
Registro BX.
El BX es conocido como el registro base ya que es el nico registro de propsitos generales que pueden ser unos ndices para
direccionamiento indexado. Tambin es comn emplear al BX para clculos.
Registro CX.
El CX es conocido como el registro contador. Puede contener un valor para controlar el nmero de veces que un ciclo se repite
o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda. El CX tambin es usado para muchos clculos.
Registro DX.
El DX es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de
multiplicacin y divisin con cifras grandes suponen al DX y al AX trabajando juntos. Puede usar los registros de propsitos para
suma y resta de cifras de 8, 16, 32 bits.
5. Registro ndice.
Los registros SI y DI estn disponibles para direccionamientos indexados y para sumas y restas. Que son las operaciones de
punta.
Registro SI.
El registro ndice de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI est
asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado a 32 bits, el ESI.
Registro DI.
El registro ndice destino tambin es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el Di est
asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado a 32 bits, el EDI.
Registro de bandera.
Los registros de banderas sirven parar indicar el estado actual de la mquina y el resultado del procesamiento, Cuando algunas
instrucciones
piden
comparaciones
o
clculos
aritmticos
cambian
el estado de
las
banderas.
Las banderas estn en el registro de banderas en las siguientes posiciones:
bits 15 14 13 12 11 10 9 8 7 6 5
4321
Bandera
Las banderas ms comunes son las siguientes:
OF (Over flow flag, desbordamiento).
Indica el desbordamiento de un bit de orden alto (mas a la izquierda) despus de una operacin aritmtica.
DF (Direction flag, Direccion).
Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.
IF (Interruption flag, Interrupcion).
Indica que una interrupcin externa, como la entrada desde el teclado sea procesada o ignorada.
TF (Trap flag, Trampa).
Examina el efecto de una instruccin sobre los registros y la memoria. Los programas depuradores como DEBUG, activan esta
bandera de manera que pueda avanzar en la ejecucin de una sola interrupcin a un tiempo.
SF (Sign flag, Signo).
Contiene el signo resultante de una operacin aritmtica (0=positivo y 1= negativo).
ZF (Zero flag, Zero).
Indica el resultado de una operacin aritmtica o de comparacin (0= resultado diferente de cero y 1=resultado igual a cero).
AF (Auxiliary carry flag, Acarreo auxiliar).
Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica especializada
PF (Parity flag, Paridad).
Indica paridad par o impar de una operacin en datos de ocho bits de bajo orden (mas a la derecha).
CF (Carry flag, Acarreo).
Contiene el acarreo de orden mas alto (mas a la izquierda) despus de una operacin aritmtica; tambin lleva el contenido del
ultimo bit en una operacin de corrimiento o rotacin.
Cuadro Comparativo
TIPOS DE REGISTROS
Registros de Segmento
Registros de Apuntador de Instrucciones
Registros Apuntadores
Registros de Propsito General
Registros Indices
Registros de Banderas
Ejemplo De Representacin De Los Registros
Despus de haber conceptualizado e interpretado los diferente tipos de registro nos vemos en la necesidad de dar un ejemplo
no muy prctico pero si muy significativo en el cual se representan la forma estructurada de un programa en el
lenguaje ensamblador y como se utilizan los diferentes termino que hemos investigado vemos que en el programa o en una
pequea porcin de l se muestran como se colocan dentro los diferentes tipos registros.
TITLE P17HANRD(EXE) Lectura secuencial de registros.
.MODEL SMALL
.STACK 64
/-----------------------------------------------------------------------------------------,DATA
ENDCDE DB 00 ; FIN DEL INDICARDOR DE PROCESO.
HANDLE DW ?
IOAREA DB 32 DUP( )
OPENMSG DB *** Open error *** 0DH, 0AH
PATHNAM DB D:\NAMEFILE.SRT, 0
READMSD DB *** Read error *** 0DH, 0AH
ROW DB 00
/--------------------------------------------------------------------------------------------.CODE
BEGIN PROC FAR
MOV AX,@data ; inicializa
MOV DS,AX ; registro de
MOV ES,AX ; segmento
MOV AX,0600H
Autor:
Oscar borja
Leer ms: http://www.monografias.com/trabajos7/regi/regi.shtml#ixzz3YhKCX7bC
Registros de un microprocesador
En arquitectura de ordenadores, un registro es una memoria de alta velocidad y poca capacidad, integrada en
el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones
matemticas.
Los registros estn en la cumbre de la jerarqua de memoria, y son la manera ms rpida que tiene el sistema de almacenar
datos. Los registros se miden generalmente por el nmero de bits que almacenan; por ejemplo, un "registro de 8 bits" o un
"registro de 32 bits". Los registros generalmente se implementan en un banco de registros, pero antiguamente se
usaban biestables individuales, memoria SRAMo formas aun ms primitivas.
El trmino es usado generalmente para referirse al grupo de registros que pueden ser directamente indexados como operandos
de una instruccin, como est definido en el conjunto de instrucciones. Sin embargo, los microprocesadores tienen adems
muchos otros registros que son usados con un propsito especfico, como el contador de programa. Por ejemplo, en la
arquitectura IA32, el conjunto de instrucciones define 8 registros de 32 bits.
Tipos de registro
Los registros de datos son usados para guardar nmeros enteros. En algunas computadoras antiguas, exista un
nico registro donde se guardaba toda la informacin, llamado acumulador.
Los registros de memoria son usados para guardar exclusivamente direcciones de memoria. Eran muy usados en
la arquitectura Harvard, ya que muchas veces las direcciones tenan un tamao de palabra distinto que los datos.
Los registros de propsito general (en ingls GPRs o General Purpose Registers) pueden guardar tanto datos
como direcciones. Son fundamentales en la arquitectura de von Neumann. La mayor parte de las computadoras modernas
usa GPR.
Los registros de coma flotante son usados para guardar datos en formato de coma flotante.
Los registros constantes tienen valores creados por hardware de slo lectura. Por ejemplo, en MIPS el registro cero
siempre vale 0.
Los registros de propsito especfico guardan informacin especfica del estado del sistema, como el puntero de
pila o el registro de estado.
cdigo 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 instruccin que ser
ejecutada, el procesador combina las direcciones en el CS y el IP:
Segmento de direccin en el registro CS: 25A40H Desplazamiento de direccin en el registro IP: + 412H Direccin de la
siguiente instruccin: 25E52H
Registros Apuntadores.
Los registros SP (apuntador de la pila) Y BP (apuntador de base) estn 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 automtica estos registros.
En el ejemplo siguiente, el registro SS contiene la direccin 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 parmetros, los cuales son datos y direcciones transmitidos va pila. Los
procesadores 80386 y posteriores tienen un BP ampliado de 32 bits llamado el registro EBP.
Registros Indice.
Los registros SI y DI estn 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 tambin 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.
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 aritmtica
cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la accin
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) despus de una operacin aritmtica.
DF (direccin). Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.
IF (interrupcin). Indica que una interrupcin externa, como la entrada desde el teclado, sea procesada o ignorada.
TF (trampa). Permite la operacin del procesador en modo de un paso. Los programas depuradores, como el DEBUG, activan
esta bandera de manera que usted pueda avanzar en la ejecucin de una sola instruccin a un tiempo, para examinar el efecto
de esa instruccin sobre los registros de memoria.
SF (signo). Contiene el signo resultante de una operacin aritmtica (0 = positivo y 1 = negativo).
ZF (cero). Indica el resultado de una operacin aritmtica o de comparacin (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 aritmtica especializada.
PF (paridad). Indica paridad par o impar de una operacin 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) despus de una operacin aritmtica; tambin lleva el
contenido del ultimo bit en una operacin de corrimiento o de rotacin. Las banderas estn en el registro de banderas en las
siguientes posiciones:
Las banderas mas importantes para la programacin en ensamblador son O, S, Z y C, para operaciones de comparacin y
aritmticas, y D para operaciones de cadenas de caracteres. Los procesadores 80286 y posteriores tienen algunas banderas
usadas para propsitos internos, en especial las que afectan al modo protegido. Los procesadores 80286 y posteriores tienen
un registro extendido de banderas conocido como Eflags.
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 estndar, 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 funcin 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). Usndolo se produce (en general) una instruccin
que ocupa un byte menos que si se utilizaran otros registros de uso general. Su parte ms baja, AL, tambin tiene esta
propiedad. El ltimo registro mencionado es el equivalente al acumulador de los procesadores anteriores (8080 y 8085).
Adems 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). Tambin 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 propsito similar (se usa para direccionamiento
indirecto) y es una versin ms 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 (instruccin 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
instruccin CWD y en IN y OUT para direccionamiento indirecto de puertos (el registro DX indica el nmero de puerto de
entrada/salida).
5.
SP = Puntero de pila (no se puede subdividir). Aunque es un registro de uso general, debe utilizarse slo 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. Tambin
sirve para realizar direccionamiento indirecto.
8.
DI = Puntero destino (no se puede subdividir). Sirve como puntero destino para las operaciones con cadenas. Tambin
sirve para realizar direccionamiento indirecto.
Cualquiera de estos registros puede utilizarse como fuente o destino en operaciones aritmticas y lgicas
Indicadores (flags)
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits ms significativos estn 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 tambin ocurra en los
procesadores anteriores).
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o "prstamo" (en caso de resta) desde el
bit de orden ms significativo del resultado. Este indicador es usado por instrucciones que suman o restan nmeros que ocupan
varios bytes. Las instrucciones de rotacin pueden aislar un bit de la memoria o de un registro ponindolo en el CF.
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un nmero 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 "prstamo" del nibble (cuatro bits) menos significativo al
nibble ms 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 operacin es cero.
SF (Sign Flag, bit 7): Refleja el bit ms significativo del resultado. Como los nmeros negativos se representan en la notacin
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 automticamente genera una
interrupcin interna despus de cada instruccin, permitiendo inspeccionar los resultados del programa a medida que se ejecuta
instruccin por instruccin.
IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupcin 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 sufrirn "autodecremento", esto es, se procesarn las cadenas desde las direcciones ms altas de memoria hacia las ms bajas. Si vale 0,
habr "auto-incremento", lo que quiere decir que las cadenas se procesarn de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operacin aritmtica con signo, esto es, un dgito significativo se
perdi debido a que tamao del resultado es mayor que el tamao del destino.
El procesador Z80
Registros de propsito general
El Z80 posee 14 registros de propsito 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 instruccin especial
selecciona A y F o A' y F' mientras que otra instruccin selecciona B, C, D, E, H, L o C', D', E' ,H' L'.
El programador puede cambiar rpidamente de un conjunto de registros de propsito general a otro. Esto proporciona una
mayor capacidad de almacenamiento en registros. El acceso a datos presentes en registros de la CPU es mucho ms rpido
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 tambin pueden agruparse).
Flags
Aunque los Flags existen fsicamente dentro de la CPU estn agrupados lgicamente formando un registro. Los Flags del Z80
son los siguientes:
Flag de Cero(Z): Toma el valor 1 si el resultado de una operacin es cero. Es el bit seis.
Flag de signo(S): Toma el valor 1 si el resultado de una operacin 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 segn el valor del bit
desplazado. Tambin es afectado por las operaciones aritmticas. 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 operacin posee un nmero par de
unos. Cuando el flag P/V se usa para representar overflow, el flag se pone en 1 si ocurre un overflow despus de una operacin
aritmtica. 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 instruccin ejecutada fue suma o resta. En el caso general, una
instruccin de resta coloca en 1 el flag N y una instruccin de suma lo coloca en 0. Los Flags H y N son los bits 4 y 1
respectivamente.
Registros de propsito especial
Program Counter:
Es un registro de 16 bits que indica la direccin de la prxima instruccin 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 direccin 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 provisin 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, diseados para permitir un direccionamiento indexado en los
programas del Z80. Cuando se ejecuta una instruccin en un modo de direccionamiento indexado, se usa uno de los dos
registros ndices para calcular la direccin del operando.
Registro de interrupciones I: Es un registro de 8 bits que puede ser cargado para especificar el byte ms significativo de una
direccin de memoria. El byte menos significativo es proporcionado por el dispositivo que solicita la interrupcin.
Registro de refresh de memoria R: Es un registro especial diseado para proporcionar un refresh automtico de las memorias
RAM dinmicas.
Registro de instrucciones:
El registro de instrucciones tiene por misin almacenar el cdigo de operacin de la instruccin leda desde memoria. Este
cdigo es descodificado y con esta informacin se dirigen todos los micro-pasos.
http://www.oocities.org/mx/antrahxg/documentos/org_comp/registro.html
Registros visibles de usuario: Un programador de lenguaje de mquina o ensamblador puede minimizar las referencias a
memoria principal mediante un uso ptimo de estos registros. Con lenguajes de alto nivel, un compilador que optimice cdigo
intentar hacer una seleccin inteligente de qu variables asignar a registros y cules a ubicaciones de la memoria principal.
Algunos lenguajes de alto nivel, como C, permiten que el programador indique al compilador qu variables se deben almacenar
en registros.
Registros de control y de estado: Son utilizados por el procesador para el control de las operaciones o por rutinas privilegiadas
del sistema operativo para controlar la ejecucin de los programas.
No hay una separacin clara de los registros en estas dos categoras. Por ejemplo, en algunas mquinas el contador de
programa es visible para los usuarios, pero en otras muchas no lo es. Sin embargo, para el propsito de la discusin que viene
a continuacin, es conveniente emplear estas categoras.
Registros visibles de usuario
Un registro visible de usuario es aqul que puede ser referenciado por medio del lenguaje de mquina que ejecuta el
procesador y es, por lo general, accesible para todos los programas, incluyendo tanto los programas de aplicacin como los del
sistema. Las clases de registro que, normalmente, estn disponibles, son los registros de datos, los registros de direccin y los
registros de cdigos de condicin.
Los registros de datos
Pueden ser asignados por el programador a diversas funciones. En algunos casos, son de propsito general y pueden ser
empleados por cualquier instruccin de mquina que lleve a cabo operaciones sobre los datos. Sin embargo, suelen ponerse
ciertas restricciones a menudo. Por ejemplo, puede haber registros dedicados a operaciones en coma flotante.
Los registros de direccin
Contienen direcciones en la memoria principal de datos e instrucciones o una parte de la direccin que se utiliza en el clculo de
la direccin completa. Estos registros pueden ser de propsito general o pueden estar dedicados a un modo especfico de
direccionamiento.
Entre los ejemplos se incluyen:
Registro ndice: El direccionamiento indexado es un modo comn de direccionamiento que implica sumar un ndice a
un valor base para obtener la direccin efectiva.
Puntero de segmento: Con direccionamiento segmentado, la memoria se divide en segmentos, que son bloques de
palabras de tamao variable. Una referencia a memoria consta de una referencia a un segmento particular y un
desplazamiento dentro del segmento. En este modo, se utiliza un registro que alberga una direccin base (ubicacin
inicial) de un segmento. Puede haber varios registros de este tipo: por ejemplo, uno para el sistema operativo (es decir,
cuando se ejecuta cdigo del sistema operativo en el procesador) y otro para la aplicacin que est en ejecucin.
Puntero de pila: Si hay un direccionamiento de pila visible para los usuarios, la pila estar, por lo general, en la
memoria principal, existiendo un registro dedicado a sealar la cima de la pila.
Esto permite el uso de instrucciones que no contienen ningn campo de direccin, tales como push (poner) y pop (sacar).
Una ltima categora de registros que son, al menos, parcialmente visibles para los usuarios, son aquellos que
contienen cdigos de condicin (tambin denominados indicadores o flags). Los cdigos de condicin son bits activados por
el hardware del procesador como resultado de determinadas operaciones.
Por ejemplo, una operacin aritmtica puede producir un resultado positivo, negativo, cero o desbordamiento. Adems de
almacenar el resultado de esta operacin en un registro o en memoria, tambin se activar un cdigo de condicin. Este cdigo
puede consultarse posteriormente como parte de una operacin de salto condicional.
Los bits de cdigo de condicin se agrupan en uno o ms registros. Estos forman generalmente parte de un registro de control.
En general, las instrucciones de mquina permiten leer estos bits mediante referencias implcitas, pero no pueden ser alterados
por el programador.
En algunas mquinas, una llamada a un procedimiento o subrutina provocar que los registros visibles de usuario se salven
automticamente, para luego restaurarlos al retomar. Este proceso de salvar y restaurar lo lleva a cabo el procesador como
parte de la ejecucin de las instrucciones de llamada y retomo. Esto permite que cada procedimiento pueda usar los registros
de forma independiente. En otras mquinas, es responsabilidad del programador salvar los contenidos de los registros de
usuario visibles que sean relevantes antes de hacer la llamada a un procedimiento, incluyendo instrucciones en el programa con
tal propsito. As pues, las instrucciones de salvar y restaurar pueden ser llevadas a cabo por el hardware o por el software,
dependiendo de la mquina.
Registros de control y de estado
Varios registros se emplean para controlar las operaciones del procesador. En la mayora de las mquinas, la mayor parte de
estos registros no son visibles para los usuarios. Algunos de ellos pueden estar accesibles a las instrucciones de mquina
ejecutadas en un modo de control o modo del sistema.
Por supuesto, mquinas diferentes tendrn organizaciones diferentes de registros y podrn usar terminologas distintas.
Adems de los registros MAR, MBR, IOAR y IOBR mencionados anteriormente, los siguientes registros son esenciales en la
ejecucin de instrucciones;
Contador de programa (PC, Program Counter): Contiene la direccin de la instruccin a ser leda.
Registro de instruccin (IR, Instruction Regster): Contiene la ltima instruccin leda. Todos los diseos de
procesadores incluyen adems un registro o conjunto de registros, conocidos a menudo como palabra de estado del
programa (PSW, Program Status Word), que contiene informacin de estado. Normalmente, la PSW contiene cdigos de
condicin junto a otra informacin de estado. Entre los campos e indicadores ms comunes se incluyen los siguientes:
Acarreo: Se activa cuando, como resultado de una suma o una resta, se produce un acarreo ms all del bit ms
significativo. Se utiliza en operaciones aritmticas de ms de una palabra.
Habilitar/inhahilitar interrupcines: Empleado para habilitar o inhabilitar interrupciones. Cuando Las interrupciones
estn inhabilitadas, el procesador las ignora. Esto es muy deseable cuando el sistema operativo est ocupado en el
tratamiento de otra interrupcin.
Supervisor: Indica si el procesador est ejecutando en modo supervisor o en modo usuario. Ciertas instrucciones privilegiadas
slo se pueden ejecutar en modo supervisor y slo se puede tener acceso a ciertas reas de memoria en modo supervisor.
En el diseo de un procesador especfico, se pueden encontrar una serie de registros relacionados con el estado y el control.
Adems de la PSW, puede haber un puntero a un bloque de memoria que contenga informacin de estado adicional. En
mquinas que utilizan varios tipos de interrupcin, se puede ofrecer una serie de registros con punteros a cada rutina de
tratamiento de interrupcin. Si se utiliza una pila para implementar ciertas funciones (por ejemplo, las llamadas a
procedimientos), entonces se necesita un puntero a la pila. Por ltimo, los registros tambin pueden utilizarse para el control de
las operaciones de E/S.
Una serie de factores inciden en el diseo de la organizacin de los registros de control y estado. Un punto clave es el soporte
del sistema operativo. Cierto tipo de informacin de control es de utilidad especfica para el sistema operativo. Si el diseador
del procesador dispone de una visin funcional del sistema operativo, la organizacin de los registros puede adaptarse
convenientemente.
Otra decisin clave del diseo es la asignacin de informacin de control a los registros y la memoria. Es habitual dedicar los
primeros centenares o miles de palabras (las ms bajas) de memoria para el control. El diseador debe decidir la cantidad de
informacin de control que debe residir en los rpidos y costosos registros, junto a la cantidad que debe permanecer en
memoria principal, que es ms lenta y barata.
https://lamiradelsniper.wordpress.com/2012/08/20/registros-del-procesador/
.1 Los registros
El procesador necesita para su funcionamiento de ciertas reas de almacenamiento, que aqu se
llaman registros, y que son de dimensiones mnimas [3]; sin embargo, tienen la ventaja de su rapidez.
Comparados con los accesos a RAM, los de registro son como mnimo 10 veces ms veloces.
El 8088 dispone de catorce registros de 16 bits que se agrupan en cuatro grupos y que reciben nombres
especiales (precisamente los que se utilizan para designarlos en lenguaje ensamblador).
AX es denominado acumulador; suele contener uno de los operandos que intervienen en las
operaciones aritmticas y lgicas, y despus de esta, el resultado de la operacin. En general
las instrucciones que trabajan con este registro (o su mitad inferior) tienen un microcdigo
ms simple que la misma instruccin ejecutada con otro registro.
BX es el registro base, suele contener la direccin de inicio de una tabla de valores.
CX es denominado contador. Las instrucciones de bucle (LOOP) utilizan este registro como
contador.
DX es un registro de datos, multiuso. Se utiliza en operaciones de multiplicacin y divisin junto
con AX. En operaciones de entrada/salida de puertos IN/OUT, su mitad inferior DL, contiene el
nmero de puerto (
2.5).
Aunque estos cuatro registros son de 16 bits (como los 10 restantes) [6], en caso necesario pueden ser
utilizados en dos mitades (nibbles), "High" y "Low", de 8 bits, con lo que puede considerarse que existen
Segmento de cdigo CS ("Code segment"). Seala la direccin del segmento de cdigo del
del programa (
E1.3.2).
Segmento extra ES ("Extra segment"). Es un segmento auxiliar a los anteriores, se utiliza para
sealar espacio extra en alguno de los segmentos o para almacenar momentneamente
direcciones intermedias.
Nota: Puede ocurrir que programas pequeos utilicen el mismo segmento para el cdigo, los datos
y la pila.
Bit
Indicador de:
CF Acarreo ("Carry
Flag")
Uso
Indicador de arrastre del bit de mayor orden, que
puede ocurrir en las operaciones aritmticas suma y
resta.
ZF Cero ("Zero
Flag")
SF Signo ("Sign
Flag")
E0.1w1).
IF Interrupcin
DF Direccin
("Direction
Flag")
1.7.1) para
Invocar DEBUG desde una ventana DOS (suponemos que estamos en Windows; el "prompt" es
un guin "-")
Bit
Indicador de:
CF Acarreo
PF Paridad
AF Acarreo
Indicativo si bit 1
CY ("Carry yes")
Indicativo si bit 0
NC ("No Carry")
NA ("No Auxiliar")
ZF Cero
ZR ("Zero")
NZ ("No Zero")
SF Signo
NG ("Negative") negativo
PL ("Plus") positivo
auxiliar
IF Interrupcin
DF Direccin
EI ("Enabled Interrupt")
activa
DN ("Down") decremento
OF Desbordamien OV ("Overflow")
DI ("Disabled Interrupt")
desactivada
UP incremento
NV ("No overflow")
to
Tambin es posible inspeccionar el contenido de un solo registro, aadiendo al comando R el nombre del
registro. Por ejemplo, el comando R IP muestra el contenido del contador de programa. Los nombres
que pueden utilizarse para los registros son los siguientes: AX; BX; CX; DX; SP; BP; SI; DI; DS;
ES; SS; CS; IP y F (este ltimo para el registro de estado).
Despus de un comando de este tipo, DEBUG responde con un "prompt" distinto del habitual ":", para
indicar que debe introducir el nuevo valor que desea para el registro. Pulsando INTRO se vuelve al
modo normal.
3.1.5 Comentario
Observe que tanto el registro contador de programa IP, como el de base BP, siempre contienen
direcciones de memoria (los otros pueden contener direcciones o datos). Ni los registros de segmento ni
los de puntero se pueden dividir en mitades (como los de uso general).
http://www.zator.com/Hardware/H3_2.htm
ejecucin de una instruccin, el PC y el MAR sirven al mismo fin. Sin embargo, muchas de
las instrucciones de la maquina hacen referencia a la memoria y operan con los datos que
estn en ella. Como la direccin de los datos suele ser diferente de la instruccin siguiente
se necesita el MAR.
8. Funcin de RD Registro de datos: la funcin del RD consiste en proporcionar un rea
de almacenamiento temporal (memoria intermedia, acumulada o buffer) de datos que se
intercambian entre la PCU y la memoria. Los datos pueden ser instrucciones (obtenidos en
el ciclo de ejecucin) o datos del operando (obtenidos en el ciclo de ejecucin). Debido a su
conexin directa con el canal de datos el RD contiene el mismo numero de bit que dicho
canal.
9. Funcin de IR Registro de instrucciones (IR): es un registro que conserva el cdigo de
operacin de la instruccin en todo el ciclo de la maquina. El cdigo es empleado por la
unidad de control de la CPU para generar las seales apropiadas que controla le ejecucin
de la instruccin. La longitud del ER es la longitud en bit del cdigo de operacin.
10. Funcin de PSW Palabra de estado de programa (PSW): la palabra de estado o
condicin de programa almacena informacin pertinente sobre el programa que este
ejecutndose. Por ejemplo al completarse una funcin de la unidad aritmtica lgica se
modifica un conjunto de bit llamados cdigos (o seales de condicin). Estos bit especifican
si el resultado de una operacin aritmtica fue 0 o negativo o si el resultado se desbord.
Adems el PSW contiene bit que hacen posible que la computadora responda a solicitudes
de servicio asincrnicas generadas por dispositivos de Entrada-Salida, o condiciones de
error interno. Estas seales se denominan interrupciones.