2. Los registros del procesador se emplean para controlar instrucciones
en ejecución, manejar direccionamiento de memoria y proporcionar
capacidad aritmética. Los registros son espacios físicos dentro
del microprocesador con capacidad de 4 bits hasta 64 bits
dependiendo del microprocesador que se emplee.
Los registros son direccionablespor medio de una viñeta, que es
una dirección de memoria. Los bits, por conveniencia, se numeran de
derecha a izquierda (15,14,13…. 3,2,1,0), los registros están
divididos en seis grupos los cuales tienen un fin específico.
Los registros se dividen en:
Registros de segmento
Registros de apuntadores de instrucciones
Registros apuntadores
Registros de propósitos generales
Registro índice
Registro de bandera.
2.
Registros
de
segmento.
Un registro de segmento se utiliza para alinear en un límite
de párrafo o dicho de otra forma codifica la dirección de inicio de cada
segmento y su dirección 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 dirección inicial del segmento de código de
un programa en el registro CS. Esta dirección de segmento, más
un valor de desplazamiento en el registro de apuntado de instrucción
(IP), indica la dirección de una instrucción que es buscada para sí
ejecución. Para propósito de programación normal, no se necesita
referenciar el registro CS.
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,
más un valor de desplazamiento en una instrucción, genera una
3. referencia a la localidad de un bytes 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 el registro SS. Esta dirección de segmento, más 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
propósitos de programación 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 dirección 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 dirección
de
la
siguiente
instrucción
que
se
ejecuta.
El registro IP está 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
está
ejecutando
actualmente.
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 procesados combina las direcciones en el CS y el IP así:
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 apuntadores están 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 dirección de segmento
27B3[0]H y el SP el desplazamiento 312H Para encontrar la palabra
4. actual que está siendo procesada en la pila el microprocesador
combina
las
direcciones
en
el
SS
y
el
PP:
Dirección
de
segmento
en
el
registro
Desplazamiento
en
el
registro
SP:
Dirección en la Pila: 27E42H
…….
27B3[0]H
Dirección del segmento SS Desplazamiento del SP
SS:
+
27B30H
312H
312H
Registro
BP.
El registro BP de 16 bits facilita la referencia de parámetros, los
cuales son datos y direcciones transmitidos vía lapida.
4.
Registros
de
propósitos
generales.
Los registros de propósitos 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 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 si nombre. Ñas
instrucciones siguientes mueven ceros a los registros CX, CH y CL
respectivamente.
Mov
Mov
Mov
CX,
CH,
CL,
00
00
00
Los procesadores 80386 y posteriores permiten el uso de todos
registros de propósito 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 aritmética. Por
ejemplo, las instrucciones para multiplicar, dividir y traducir suponen
el uso del AX. También, algunas operaciones generan código más
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
propósitos generales que pueden ser unos índices para
direccionamiento indexado. También es común emplear al BX para
cálculos.
5. Registro
CX.
El CX es conocido como el registro contador. Puede contener un valor
para controlar el número de veces que un ciclo se repite o un valor
para corrimiento de bits, hacia la derecha o hacia la izquierda. El CX
también es usado para muchos cálculos.
Registro
DX.
El DX es conocido como el registro de datos. Algunas operaciones de
entrada/salida requieren su uso, y las operaciones de multiplicación y
división con cifras grandes suponen al DX y al AX trabajando juntos.
Puede usar los registros de propósitos para suma y resta de cifras de
8, 16, 32 bits.
5.
Registro
índice.
Los registros SI y DI están disponibles para direccionamientos
indexados y para sumas y restas. Que son la 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 también 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
máquina y el resultado del procesamiento, Cuando algunas
instrucciones piden comparaciones o cálculos aritméticos cambian
el estado de
las
banderas.
Las banderas están en el registro de banderas en las siguientes
posiciones:
bits
15
14
13
12
11
10
9
8
7
6
5
4321
O D I T SZ
A
P
C
Bandera
Las
banderas
más
comunes
son
las
siguientes:
OF
(Over
flow
flag,
desbordamiento).
Indica el desbordamiento de un bit de orden alto (mas a la izquierda)
después
de
una
operación
aritmética.
6. DF
(Directionflag,
Direccion).
Designa la dirección hacia la izquierda o hacia la derecha para mover
o
comparar
cadenas
de
caracteres.
IF
(Interruptionflag,
Indica que una interrupción externa, como
el teclado sea
procesada
o
Interrupcion).
la entrada desde
ignorada.
TF
(Trapflag,
Trampa).
Examina el efecto de una instrucción sobre los registros y la
memoria. Los programas depuradores como DEBUG, activan esta
bandera de manera que pueda avanzar en la ejecución de una sola
interrupción
a
un tiempo.
SF
(Signflag,
Signo).
Contiene el signo resultante de una operación aritmética (0=positivo
y
1=
negativo).
ZF
(Zero
flag,
Zero).
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
(Auxiliarycarryflag,
Acarreo
auxiliar).
Contiene un acarreo externo del bit 3 en un dato de 8 bits, para
aritmética
especializada
PF
(Parityflag,
Paridad).
Indica paridad par o impar de una operación en datos de ocho bits de
bajo
orden
(mas
a
la
derecha).
CF
(Carryflag,
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 rotación.
Cuadro Comparativo
TIPOS
DE FUNCION
REGISTROS
Registros
Segmento
de Un registro de segmento tiene 16 bits de
longitud y facilita un área de memoria para el
direccionamiento conocida como el segmento
actual
Registros
Apuntador
Instrucciones
de Este registro está compuesto por 16 bits y
de contiene el desplazamiento de la siguiente
instrucción que se va a ejecutar. Los
procesadores 80386 y posteriores tiene un IP
7. ampliado de 32 bits llamado EIP.
Registros
Apuntadores
Permiten al sistema accesar datos al segmento
de la pila. Los procesadores 80386 tiene un
apuntador de pila de 32 bits llamado ESP. El
sistema maneja de manera automática estos
registros.
Registros
de Son los caballos de batalla del sistema y
Propósito General
pueden ser direccionados como una palabra o
como una parte de un bytes. Los procesadores
80386 y posteriores permiten el uso de todos
los registros de propósitos general mas sus
versiones ampliadas de 32 bits llamados EAX,
EBX,ECX y EDX.
Registros Indices
Registros
Banderas
Sirven para el direccionamiento de indexado y
para las operaciones de sumas y restas.
de Sirven para indicar el estado actual de la
maquina y el resultado del procesamiento. De
los 16 bits de registro de bandera 9 son
comunes a toda la familia de los procesadores
8086.