UTP - Capítulo 8 Organizacion de Registros
UTP - Capítulo 8 Organizacion de Registros
UTP - Capítulo 8 Organizacion de Registros
Organización de registros
Registros visibles al usuario: son utilizados
por el programador.
Registros de control y estado: son utilizados
por la UC para controlar la operación de la
CPU (no son visibles por el programador).
Registros visibles al
usuario
Propósito general
Datos
Dirección
Códigos de condición
Registros visibles al
usuario
Pueden ser asignados a una variedad de
funciones:
cualquier registro de propósito general puede
contener el operando para cualquier código de
operación (verdadero propósito)
pueden existir restricciones (ej. Registros
dedicados a operaciones especifcas)
Discusión
¿Todos los registros de propósito general ó
especializar su uso?
Todos de propósito general: afecta al tamaño
de las instrucciones.
Especializados: puede estar implícito en el
código de operación a qué registro se refiere
(ej. Acumulador). Se ahorran bits. Limitan la
flexibilidad del programador.
No hay una receta.
Número de registros
Afecta al tamaño de la instrucción.
Mayor Nº de registros, más bits para
especificarlos en la instrucción.
Pocos registros: más referencias a memoria
No óptimo: entre 8 y 32 reg. Más, no hay
gran mejora (aumenta tamaño de la
instrucción).
Longitud de los registros
De direcciones: deben ser capaces de
almacenar la dirección más grande.
De datos: deben estar habilitados para
almacenar la mayoría de los tipos de datos.
Algunas máquinas permiten 2 registros
contiguos utilizados como un solo registro
para almacenar valores de doble longitud.
Bits de condición
(banderas)
Bits establecidos por la CPU como resultado
de operaciones.
Pueden ser utilizados por las instruccionesde
bifurcación condicional.
Generalmente no son alterados por el
programador
Registros de control y
estado
Empleados para controlar la operación de la
CPU. En la mayoría de las máquinas no
sonvisibles al usuario.
Los 4 esenciales para la ejecución de
Contador de programa (PC)
Registro de instrucción (IR)
Registro de dirección de memoria (MAR)
Registro buffer de memoria (MBR)
Reg. de control y estado
Los 4 reg recién mencionados se emplean para
el movimiento de datos entre la cpu y memoria.
Dentro de la CPU los datos se deben presentar a
la ALU para procesamiento, ésta puede acceder al
MBR y a los reg visibles por el usuario. Puede
haber también reg temporales adicionales
paraintercambiar datos con el MBR y demás reg
visibles.
Organización de registros
CPU PII Intel (principales)
De uso general
Organización de registros
CPU PII Intel (principales)
segmentos
Organización de registros
CPU PII Intel (principales)
PC y banderas
Organización de registros
CPU PII Intel (principales)
AX: acumulador, es el principal en las
operaciones aritméticas
BX : puntero base (dir de memoria)
CX : contador, interviene en instrucciones de
ciclo
DX: datos, participa en multiplicación y
división
Organización de registros
CPU PII Intel (principales)
SI y DI : apuntadores que utilizan las
instrucciones que recorren arreglos o tablas
BP y SP : también son apuntadores a
memoria, pero a una zona especial: pila ó
stack
CPU MOTOROLA 68000
CPU MOTOROLA 68000
De direcciones
Organización de registros
CPU MOTOROLA 68000
registros de 32 bits de datos
9 registros de direcciones
2 stacks: uno para usuario y otro para S.O.
Instrucciones - Intel
Tienen la forma :
instrucción destino,fuente
destino y fuente son 2 operandos, donde c/u
de ellos está especificado por alguno de los
mdd vistos, el otro operando es un registro de
la CPU
Instrucciones - Intel
Llamando :
memoria= especificación de una dirección de
memoria
reg = registro de la CPU
inm = dato inmediato
Instrucciones - Intel
Instrucción mem, reg
Instrucción reg , mem
Instrucción reg , reg
Instrucción reg , inm
Instrucción mem, inm
Instrucciones - Intel
El nombre destino y fuente proviene del
hecho que si hay un movimiento de datos, es
desde la derecha (fuente) hacia la izquierda
(destino).
Ejemplos:
ADD AX,BX AX=AX+BX
ADD AL,AH AL=AL+AH
MOV AL,CH AL=CH
SUB AX,BX AX=AX - BX
Instrucciones - Intel 8086
Direccionamiento Inmediato
Ejemplos:
ADD AX,35AFh AX=AX+35AFh
ADD AL,15 AL=AL+15
MOV AL,3Eh AL=3Eh
SUB AX,1234h AX=AX - 1234h
Instrucciones - Intel 8086
Direccionamiento Directo
Ejemplos:
ADD AX, [35AFh]
AX = AX + contenido direcc. 35AFh y 35B0h
ADD AL, DATO
AL = AL + contenido variable DATO (8 bits)
MOV CH, NUM1
CH = contenido variable NUM1 (8 bits)
Instrucciones - Intel 8086
Direccionamiento Indirecto por registro
Ejemplos:
ADD AX, [BX]
AX = AX + dato almacenado en dirección
contenida en BX y la que sigue
MOV [BX], AL
dato en la dirección contenida en BX = AL
Instrucciones - Intel 8086
Direccionamiento base + índice
CX, [BX+SI]
CX = dato almacenado en la direcc. BX+SI y
la siguiente
MOV [BX+DI], AL
dato almacenado en la direcc. BX+DI = AL
Instrucciones - Intel 8086
Direccionamiento Relativo por registro
MOV AL, [BX+2]
AL=dato almacenado en dir BX+2
MOV [BX+2Ah], AX
dato almacenado en dir BX+2Ah y la que
sigue = AX (16 bits)
Instrucciones - Intel 8086
Direccionamiento relativo base+índice
Ejemplos:
MOV AL, [BX+SI+2]
AL = dato almacenado en la dir BX+SI+2
MOV [BX+DI+2Ah], AX
dato almacenado en la dir BX+DI+2Ah y la
que sigue = AX (16 bits)
Formatos de instrucción-
Criterios de diseño
¿Instrucciones cortas ó largas?
No de bits/seg
ancho de banda de la memoria
Velocidad procesador/Velocidad memoria
Instrucciones más cortas
el procesador “parece” más rápido.
Formatos de instrucción-
Criterios de diseño
Suficientes bits para para expresar todas las
operaciones deseadas.
La experiencia demuestra dejar bits libres
para el futuro.
Cantidad de bits de datos.