El documento describe los diferentes tipos de registros en una CPU, incluyendo registros de uso general, apuntadores, índices, segmentos e indicadores. También explica los diferentes modos de direccionamiento como implícito, inmediato, directo e indirecto y cómo especifican la forma de localizar operandos en la memoria.
1. Ing. Esp. Milton Hernandez
Registros Básicos
del CPU
Registros de uso general
Registros apuntadores
Registros Índices
Registros de Segmentos
Apuntador Índice
Registro de Banderas
2. Ing. Esp. Milton Hernandez
Los Registros de la CPU
Los procesadores desde
la gama 8086 tienen
mínimamente 14
registros de 16 bits, que
sirven para Llevar un
control de todo lo que
sucede dentro del PC.
Se dividen en diversas
categorías según su
actividad o propósito.
3. Ing. Esp. Milton Hernandez
Registros de uso general
AX, BX, CX, y DX.
Estos registros son duales, es decir,
pueden manipularse como si fueran de 8 o
de 16 bits.
En la modalidad de 8 bits se les conoce
como registros Rp. Donde R es la letra que
corresponde al registro (A, B, C o D) y p es
la parte alta (H) o baja (L) del registro.
4. Ing. Esp. Milton Hernandez
Registros de uso general
AX se le conoce como registro acumulador,
se usa para toda operación de entrada/salida y
para algunas operaciones de cadenas.
BX se le conoce como registro base, se usa
para calcular direcciones que accesan la
memoria.
CX es el registro contador, es usado para
llevar la cuenta en operaciones repetitivas.
DX es el registro de datos, se usa para
almacenar las direcciones de los puertos. Se
puede usar en combinación con AX.
5. Ing. Esp. Milton Hernandez
Registros apuntadores
Se usan para apuntar a alguna dirección
de memoria.
BP es el Apuntador Base, usado para
manipular la información que se
encuentra en la pila.
SP es el Apuntador de Pila, se usa para
crear en memoria una estructura llamada
pila. Funciona en conjunto con el SS.
6. Ing. Esp. Milton Hernandez
Registros de Índices
Se usan en operaciones con cadenas.
SI conocido como índice Fuente, indica
la dirección de inicio de los datos a
copiar en la dirección DI.
DI es el índice Destino.
También se usan en el calculo de
direcciones o en el paso de parámetros.
7. Ing. Esp. Milton Hernandez
Registros de Segmentos
CS es el segmento de código, esta
asociado al código del programa.
Funciona con el registro IP.
La combinación CS:IP da como resultado
la siguiente instrucción a ser ejecutada
por el procesador.
DS es el registro segmento de dato, allí
se guardan los datos del programa.
8. Ing. Esp. Milton Hernandez
Registros de Segmentos
ES es el registro de segmento extra, se
utiliza para ampliar el registro de
segmento de datos.
SS es el registro segmento de pila,
controla el área donde se crea la pila.
Los registros de segmentos se usan para
generar la dirección que se pondrá en el
bus de direcciones de la CPU.
10. Ing. Esp. Milton Hernandez
Registro Apuntador de
Instrucciones
El registro IP se usa
en combinación con
el registro CS para
indicar el área de
memoria donde se
encuentra la
siguiente instrucción
por ejecutar.
11. Ing. Esp. Milton Hernandez
Registro de Banderas
Reporta el estado de una operación
aritmética o lógica.
CF Bandera de Acarreo.
PF Bandera de Paridad.
AF Bandera de Acarreo Auxiliar.
ZF Bandera de Cero.
SF Bandera de Signo.
OF Bandera de Desbordamiento.
12. Ing. Esp. Milton Hernandez
Registro de Banderas
DF Bandera de Dirección.
IF Bandera de Interrupción.
TF Bandera de Captura.
Las tres anteriores se usan como
banderas de control.
13. Ing. Esp. Milton Hernandez
Estados del registro
Banderas
Overflow
NV = no hay desbordamiento;
OV = sí lo hay
Direction
UP = hacia adelante;
DN = hacia atras;
Interrupts
DI = desactivadas;
EI = activadas
Sign
PL = positivo;
NG = negativo
Zero
NZ = no es cero;
ZR = sí lo es
Auxiliary Carry
NA = no hay acarreo auxiliar;
AC = hay acarreo auxiliar
Parity
PO = paridad non;
PE = paridad par;
Carry
NC = no hay acarreo;
CY = Sí lo hay
14. Ing. Esp. Milton Hernandez
Ejemplo con Debug
C:>Debug [enter]
r [enter]
r bx [enter]
Bx 0000
:CF; Nuevo valor
para BX
r [enter]
a [enter]
Mov ah, 8 [enter]
add ah, 3 [enter]
sub ah, 4 [enter]
Int 20 [enter]
[enter]
g108 [enter]
g [enter]
15. Ing. Esp. Milton Hernandez
Modos de
Direccionamiento
El modo de direccionamiento especifica la forma
de interpretar la información contenida en cada
campo de operando para localizar, con base a
esta información, el operando.
Da versatilidad de programación al usuario
proporcionando facilidades tales como índices,
direccionamientos indirectos, etc., esta versatilidad
nos servirá para manejar estructuras de datos
complejas como vectores, matrices, etc.
Reducir el número de bits del campo de operando.
16. Ing. Esp. Milton Hernandez
Modos de
Direccionamiento
Direccionamiento implícito
En este modo, llamado también inherente, el operando
se especifica en la misma definición de la instrucción.
El modo implícito se usa para hacer referencia a
operandos de dos tipos:
Registros: En el caso de que el código de operación se
refiera en particular a un registro.
Operandos en la pila: En el caso de que la operación se
realice siempre sobre el dato situado en la cima de pila.
Ejemplo: Mov Ax, Bx
Push Ax
Pop Bx
17. Ing. Esp. Milton Hernandez
Modos de
Direccionamiento
Direccionamiento inmediato (o literal) En
este modo es el operando el que figura en la
instrucción no su dirección. En otras palabras
el campo de operando contiene él mismo, sin
transformación alguna, la información sobre la
que hay que operar. Este modo es útil para
inicializar registros o palabras de memoria con
un valor constante.
Ejemplo: Mov Ax, 5
18. Ing. Esp. Milton Hernandez
Modos de
Direccionamiento
Direccionamiento directo (o absoluto)
Este es el modo de direccionamiento más
sencillo. El campo de dirección no necesita
transformación alguna para dar la dirección
efectiva, es decir la función que transforma el
campo de operando en la dirección efectiva es
la identidad. Esto significa que el campo de
operando es ya la dirección efectiva.
Ejemplo: Mov ax, Valor; Valor es una variable
Mov Ax, [200H]
19. Ing. Esp. Milton Hernandez
Modos de
Direccionamiento
Direccionamiento indirecto
En este modo el campo de operando de la instrucción
indica la localización de la dirección efectiva del
operando. El modo de direccionamiento indirecto
puede adquirir diferentes formas según cuál sea el
lugar donde se encuentre la dirección del operando.
En general, todos los modos de direccionamiento
tienen su versión indirecta que añade un eslabón más
a la cadena del direccionamiento. Por ejemplo existe el
direccionamiento indirecto por registro, en el que el
registro especificado contiene la dirección del
operando, no el operando mismo.
Ejemplo: Mov Ax, [SI]
21. Ing. Esp. Milton Hernandez
Preguntas de afianzamiento
¿Cuál ha sido la evolución de los distintos
registros del CPU, de ejemplos de cada uno de
ellos indicando su utilidad?
¿Qué problemas trae el modo de
direccionamiento?
¿Qué ventajas tiene eliminar los modos de
direccionamiento?
¿Qué otro tipo de direccionamiento existen y
de qué dependen?