Está en la página 1de 32

1

Se encarga de realizar las transformaciones de los


datos.
Consta de una serie de mdulos que llevan a cabo
operaciones lgico-matemticas.
Puede realizar un conjunto de operaciones
aritmticas bsicas y un conjunto de operaciones
lgicas, a travs de lneas de seleccin.
1.2 Unidad Aritmtica y Lgica (ALU)
2
Las cuatro entradas de A se combinan con las de B
generando una operacin de salida de cuatro bits en
la funcin F.
La entrada de seleccin de modo S2 distingue entre
las operaciones aritmticas y lgicas.
3

Las entradas de seleccin S0 y S1 determinan la
operacin aritmtica o lgica. Con las entradas S0 y
S1 se pueden elegir cuatro operaciones aritmticas
(con S2 en un estado) y cuatro lgicas (con S2 en
otro estado).
Los acarreos de entrada y salida tienen sentido
nicamente en las operaciones aritmticas.
4
S1

S0
Salida

Funcin Fi

0

0

F=Ai+Bi

OR

0

1

F=Ai Bi

XOR

1

0

F=AiBi

AND

1

1

F=A'i

NOT

Tabla de Funcin Lgica

5
Seleccin de
Funcin

Salida N

Funcin

Descripcin

S1

S0

Cin

N

F



0

0

0

0

A

Transferir A

0

0

1

0

A+1

Incrementar A

0

1

0

B

A+B

Suma o agregar B a A

0

1

1

B

A+B+1

Suma con acarreo o agregar B a A
ms 1

1

0

0

B

A+B

Agregar el complemento de 1 de B a A

1

0

1

B

A+B+1

Agregar el complemento de 2 de B a A

1

1

0

Todos unos

A-1

Decrementar A

1

1

1

Todos unos

A

Transferir A

Tabla de Funcin Aritmtica
6
1.3 Registros Internos
Permiten almacenar resultados parciales con mayor
velocidad al ejecutar las instrucciones.
Tambin se suele guardar alguna configuracin
interna del CPU, ultimas operaciones realizadas, etc.
Principales registros:
Contador de programa: Almacena la direccin de la
siguiente instruccin a ejecutar.
Registro de instrucciones: Almacena las instrucciones que
se han capturado desde memoria y que se sern
ejecutadas.
Registro de estado: Informa del resultado de la ltima
operacin realizada en la ALU.
Registros de propsito general: Son varios registros que
sirven como almacenamiento temporal de cualquier
operacin.
7
Una instruccin de un lenguaje de alto nivel es una
construccin cercana al lenguaje humano pero
alejada del lenguaje binario que entiende el
microprocesador (cdigo mquina).
Para que el microprocesador interprete dicha
instruccin debe traducirse a cdigo mquina (unos y
ceros), proceso denominado compilacin.
Se puede hacer mas agradable la escritura en cdigo
mquina asignndole un nemnico a cada
instruccin formando el cdigo ensamblador.
Lenguajes de Alto Nivel, Ensamblador y
Cdigo de Mquina
8
Flujo de Datos:
Como se sabe el proceso de ejecucin de una
instruccin se divide en ciclo de bsqueda y ciclo de
ejecucin de la instruccin.
El primero consiste en copiar la instruccin en curso
en el IR. Esto se consigue gracias a que la CPU
almacena la direccin de la siguiente instruccin a
ejecutar en el Contador de programa. La CPU fija
esta direccin en el bus de direcciones y genera las
seales de lectura.
9
Una vez almacenada la instruccin en el IR, se
decodifica y la unidad de control lleva a cabo los
pasos necesarios para capturar los operandos
necesarios que pueden estar en la misma
instruccin, en los registros internos o en la
memoria.
La manera en que se establece el lugar de
almacenamiento de los operandos se conoce como
modos de direccionamiento.
10
Ejemplo:
Como ejemplo veamos la ejecucin de la instruccin
LXI D, TABLA, que carga en el registro D el byte
contenido en la direccin apuntada por el registro HL.
Primero se accede a la direccin de memoria
apuntada por el PC iniciando el ciclo de bsqueda.
Dicho dato se carga en IR.
Luego se decodifica la instruccin forzando a cargar
los registros involucrados en la instruccin.
11
Bsqueda de la Instruccin LXI H
12
Ejecucin de la Instruccin LXI H
13
Repertorio de Instrucciones
Lenguajes de alto nivel compilacin lenguaje
mquina (se usan Nemnicos por ser muy confuso
manejar 1 y 0).
Repertorio de instrucciones: Conjunto de
instrucciones que puede ejecutar el
microprocesador. Debe cumplir dos condiciones:
Completitud: Debe poder calcular, en tiempo finito,
cualquier tarea computable.
Eficacia: Debe permitir una alta velocidad de clculo.
14
Cada instruccin debe tener la siguientes caractersticas
generales:
Deben realizar una funcin nica y sencilla, simplificando
su decodificacin.
Una misma instruccin emplea un nmero fijo de
operandos.
Codificacin de instrucciones debe ser sistemtica.
Las instrucciones son autocontenidas e independientes,
es decir, contienen toda la informacin necesaria para
ejecutarse. Debe expresar: el tipo de operacin, el valor o
posicin donde se hallan los operandos, el lugar donde
tiene que depositarse el resultado y la ubicacin de la
siguiente instruccin.
15
En conclusin, los elementos constitutivos de una
instruccin mquina son:

Cdigo de operacin.
Referencia a operandos fuente.
Referencia al operando resultado.

16
Tipos de Instrucciones
Instrucciones de transferencia de datos
Mueven datos entre registros y entre registros y
memoria.
MOV destino, origen
Ejemplos:
MOV AL,BL
MOV [SI + 3C9E],AX
MOV BX,23AF
17
Instrucciones aritmticas y lgicas
Llevan a cabo operaciones aritmticas (suma,
resta), incremento, decremento, lgicas (OR, AND,
XOR)
ADD operando1, operando2
Ejemplo
ADD AH,[BX + SI +3003]
XOR BX,AX
18
Instrucciones que modifican la secuencia del
programa (Bifurcaciones)
Alteran el funcionamiento habitual del Contador de
Programa. Se dividen en las siguientes, pudiendo
ser cualquiera de ellas incondicionales o
condicionales (dependen del estado de los
sealizadores).
Sin retorno: J UMP direccin
Con posibilidad de retorno, para ello guarda la
direccin de la siguiente instruccin en la Pila:
CALL direccin
De retorno: RET
19
Otras Instrucciones
De rotacin
NOP
HALT
INT
20
Modos de Direccionamiento
Este procedimiento sirve para determinar la
ubicacin del operando, que dependiendo de la
instruccin puede estar en:
La propia instruccin, mediante un dato inmediato.
Memoria, mediante la direccin.
Registros internos de la CPU.
21
Tipos de direccionamiento
Direccionamiento inmediato
Forma mas sencilla pues el operando est presente
en la instruccin.
Ventaja: Una vez cargada la instruccin, no se
requiere nuevo acceso a memoria.
Desventaja: Rango de valores limitado.
22
Direccionamiento inmediato
23
Direccionamiento directo
La instruccin contiene la direccin de memoria del
operando
Ventaja: Sencillez por que no requiere de clculos
previos para conocer la direccin final del dato
Desventaja: El cdigo de Direccin (CD) debe
tener la suficiente longitud para direccionar todo el
mapa de memoria
24
Direccionamiento directo
25
Direccionamiento mediante registro
El operando se encuentra almacenado en uno de
los registros internos del CPU.
Ventaja: No precisa de ciclo de lectura adicional.
Desventaja: Rango de valores limitado.
26
Direccionamiento mediante registro
27
Direccionamiento relativo a registro
El dato al cual se desea acceder reside en
memoria.
La direccin efectiva del dato la calcula el
procesador sumando una cantidad
(desplazamiento) al valor de un registro especial.
El desplazamiento puede ser un nmero inmediato
o residir en otro registro al cual se le denomina
puntero.
En la instruccin se debe especificar el
desplazamiento y el identificador del registro
(aunque a veces viene determinado por la
instruccin).
28
Facilita el acceso a un conjunto de posiciones de
memoria especificadas a partir de una posicin de
referencia.
Ventaja: Accede a todo el espacio de
direccionamiento.
Desventaja: Complejidad.
Existen varios tipos en funcin del registro puntero
utilizado:
Direccionamiento relativo al registro PC.
Direccionamiento relativo al registro base: usa
como puntero un registro de trabajo o uno
dedicado, al cual se le denomina registro base.
Direccionamiento relativo a la Pila.
29
Direccionamiento relativo a registro
30
Direccionamiento indexado
Direccionamiento similar al relativo a registro base.
Diferencia: El registro puntero (o ndice, llamado en
este caso) se modifica con frecuencia en la
ejecucin de un programa.
Se usa para recorrer estructuras de datos
(matrices).
31
Direccionamiento indirecto
La direccin especificada en la instruccin no indica
la posicin del dato, sino la direccin efectiva del
dato.
Ventaja: Supera la desventaja del direccionamiento
directo.
Desventaja: La ejecucin de la instruccin requiere
de dos referencias a memoria.
Usado en aplicaciones que usan datos distanciados
en memoria.
Se puede combinar con todos los direccionamientos
relativos vistos anteriormente.
32
Direccionamiento indirecto

También podría gustarte