Organizacion de La Unidad Central de Procesamiento
Organizacion de La Unidad Central de Procesamiento
Organizacion de La Unidad Central de Procesamiento
Buscar instrucciones (memoria). Interpretar instrucciones. Buscar datos (memoria o E/S). Procesar datos. Escribir datos (memoria o E/S).
Programacin computadora.
Preparar secuencia de instrucciones (conjunto de instrucciones). Almacenar datos (memoria). Instruir al CPU para que inicie la ejecucin.
Realiza clculos:
Aritmticos. Suma, Resta, Multiplicacin y Divisin. Lgicos (comparaciones). AND, OR, NOT.
Utiliza banderas (signo, overflow, etc.). Unidad de Control, Registros y E/S llevan datos.
Ejecucin de una instruccin = conjunto de ciclos: Captacin (fetch): obtener instruccin de la memoria. Indirecto: obtener operandos. Ejecucin. Interrupcin: instrucciones que requieren atencin urgente. Ciclos compuestos de microoperaciones. Utiliza los registros de Control y Estado.
Registros
Acceso de alta velocidad. Localizacin de la ltima instruccin. Almacenar instrucciones y datos mientras se ejecuta alguna instruccin.
Dos tipos:
Disponibles al usuario:
Propsito General. AX, BX, CX, DX (H/L). Registros de Datos. Registros de Direccin. Propsito general.
Direccionamiento.
Banderas (cdigos de condicin). Control: control CPU. Estado: estado de resultados de operaciones aritmticas y lgicas.
Control y Estado. Contador de Programa (PC): direccin de la instruccin a ser buscada (siguiente).
Registro de Instruccin (IR): instruccin reciente. Registro de Direccin de Memoria (MAR): direccin de la localidad de memoria. Registro de Dato de Memoria (MDR): palabra de memoria mas reciente. Palabra de Estado de Programa (PSW): cdigos de condicin e informacin de estado.
Instrucciones de Mquina
Instrucciones de Mquina
Determinan la operacin del CPU. Existe una gran variedad que varian en funcin: conjunto de instrucciones. Elementos de una instruccin de mquina: Cada instruccin contiene la informacin requerida por el CPU para ser ejecutada.
1. 2. 3. 4.
Cdigo de operacin: Ej: ADD, SUB, MOV. Referencia de Operando Fuente: Direccin de los operandos requeridos por la instruccin. Referencia de Operando Resultante: Dir. guardar resultado. Referencia de Siguiente Instruccin.: Dir. sig. instruccin.
Representacin de Instrucciones.
Representacin simblica de una instruccin de mquina. Abreviaciones que indican la operacin. Ej: ADD, JMP, LOAD.
Dividida en campos.
Op. Code
Operand Ref
Operand Ref
Complejo y Debatido.
1.
Tipos de datos:
1. 2. 3. 4.
2.
1.
Formato de la instruccin:
Longitud, # campos, tipo de direccionamiento.
3.
1.
Registros:
No. de registros del CPU a ser usados.
4.
1.
Direccionamiento:
Modo(s) de especificar la direccin de un operando.
5.
Repertorio de operaciones.
1. 2. 3. 4. 5. 6.
Transferencia de datos. Aritmticas. Manipulacin de bits (lgica). Control de programa. Manipulacin de cadenas (strings). Control del CPU.
5.
MOV destino, fuente Transfiere datos entre registros y memoria. Destino: registro o localidad de memoria. Fuente: registro, direccin memoria o nmero.
Instrucciones Aritmticas
ADD / SUB Op1, Op2 Suma / resta del Op1 y el Op2. El resultado es almacenado en el Op1.
MOV AX, 1 MOV BX, 2 MOV CX, 10 ADD AX, BX SUB CX, 5
MUL / DIV Op Multiplicacin / Divisin de AX por / entre Op. Resultado almacenado en AX.
Instrucciones Lgicas
AND OR NOT
NOT Op Complemento a uno de Op. Resultado almacenado en Op. AND / OR Op1, Op2 AND / OR del Op1 con el Op2. Resultado almacenado en Op1.
Instrucciones
de Manipulacin de
Cadenas
Mover cadenas Comparar cadenas Recorrer cadena Leer cadena Guardar cadena
OF DF IF TF SF ZF
AF
PF
CF
OF Overflow Flag DF Direction Flag IF Interruption Flag TF Trap Flag SF Sign Flag ZF Zero Flag AF Aux. Carry Flag PF Parity Flag CF Carry Flag
CALL Llamar a una subrutina RET Regresar de una subrutina JMP Salto JZ, JNZ Saltos condicionales LOOP Ciclo LOOPNE Ciclos condicionales INT Interrupcin
JMP etiqueta Provoca cambio en el flujo del programa sin considerar condicin alguna. La etiqueta especifica a partir de donde se continua la ejecucin del programa.
JZ / JNZ etiqueta
Transfiere el control de ejecucin si y solo si la bandera Zero Flag (ZF) se encuentra prendida / apagada.. La etiqueta especifica a partir de donde se continua la ejecucin del programa.
Si AX = 0 entonces AX = AX + 1 de otra forma AX = AX + 2 ADD AX, 0 JNZ SumaDos SumaDos: INC AX Fin: JMP Fin ADD AX, 2 ...
LOOP etiqueta Utilizada cuando se necesita ejecutar un conjunto de instrucciones varias veces. Brinca a la etiqueta siempre y cuando el valor de CX sea diferente de cero.
Ej: Realice un programa que sume los numeros enteros del 1 al 20. Almacene el resultado en DX.
MOV CX, 20 MOV AX, 0 MOV BX, 1 Suma: ADD AX, BX INC BX LOOP Suma MOV DX, AX
Instrucciones
Realice un programa que dado un nmero K, obtenga su nmero de Fibonacci. Almacene el resultado en DX. La sucesin de Fibonacci se define como la suma de los dos ltimos elementos de una serie que empieza con los nmeros 1, 1.
MOV CX, K SUB CX, 1 JZ Uno SUB CX, 1 JNZ Otro Uno: MOV DX, 1 JMP Fin Otro: MOV AX, 1 MOV BX, 1 Serie: MOV DX, AX ADD AX, BX MOV BX, DX LOOP Serie Fin: MOV DX, AX ...
Corrimiento lgico a la izquierda Recorre los bits de Op1 un nmero Op2 de posiciones a la izquierda. En cada corrimiento:
Agrega en el bit menos significativo un cero. El bit ms significativo pasa a la bandera CF.
AX = 10011000, CF = 1
Realice un programa que utilizando la instruccin SHL, multiplique por dos un nmero N, K veces.
Modos de Direccionamiento
Modos de Direccionamiento
Permiten interpretar los bits de una direccin para encontrar el valor de un operando. Modos:
Direccionamiento
Implcito.
No necesita recibir la direccin del operando, esta se encuentra implcita en la operacin. Ej.:
MUL BX
Ventaja:
Acceso rpido.
Desventaja:
Direccionamiento
Inmediato.
MOV AX, 4
Ventaja: no requiere memoria extra para traer el operando. Desventaja: Solo puede utilizar constantes.
Direccionamiento Directo.
Recibe la direccin en memoria del operando. Ej.: MOV AX, [10] Ventaja: Acceso rpido para variables globales. Desventajas: La instruccin siempre accesar la misma localidad de memoria. Solo puede cambiar el valor del operando pero no su direccin.
Direccionamiento Indirecto.
Recibe la direccin de la palabra en memoria (apuntador) que contiene la direccin del operando. Ej.:
Ventaja: La direccin en memoria puede apuntar a distintas localidades de memoria. Desventaja: La ejecucin de la instruccin requiere de dos referencias a memoria para traer el operando (una para obtener su direccin y la otra para obtener su valor).
Ventaja:
Desventaja:
Nmero limitado de registros en el CPU -> usar este direccionamiento para operandos muy utilizados.
Recibe un registro que contiene la direccin (apuntador) en memoria del operando. Ej.:
MOV AX, [BX]
Ventaja:
La direccin en el registro puede apuntar a distintas localidades de memoria (misma indirecta). Utiliza una referencia menos a memoria en comparcin con el direccionamiento inderecto.
Se requiere que la direccin del operando sea calculada en base a una direccin fija ms otra direccin de desplazamiento.
Direccin = Fija + Desplazamiento.
Tanto la direccin fija como la de desplazamiento pueden ser referenciadas de manera directa o indirecta. La direccin fija puede estar mplicita en la instruccin. Relativo. Indexado. Base.
1. 2. 3.
Relativo. La direccin fija es el registro PC y se encuentra implcita en la instruccin. Ej.: MOVPC AX, BX (BX = 5, PC = 10) Indexado. La direccin fija referencia a la memoria. El desplazamiento contiene un nmero positivo para calcular la direccin del operando. Ventaja: Eficiente para operaciones ciclicas. Desventaja: dos accesos a memoria. Dos tipos principales:
Preindexado. Postindexado.
Preindexado (indexamiento previo) La direccin fija es sumada al desplazamiento. El resultado es usado como una direccin en memoria donde se encuentra la direccin del operando. Ej.:
MOV AX, [BX,CX]
Postindexado (indexamiento posterior) La direccin fija contiene la direccin en memoria que a su vez contiene la direccin a ser utilizada para obtener el operando. A la direccin obtenida a partir de la direccin fija se le suma el desplazamiento para obtener la direccin del operando. Ej.:
MOV AX, [BX]CX
PC = 100 AX = 20 BX = 4 CX = 5 DX = 2 DIV BX MOV AX, 10 MOV AX, [0] MOV AX, [[2]] MOV AX, BX MOV AX, [CX] MOVPC AX, DX MOV AX, [DX,BX] MOV AX, [BX]BX Implcito Inmediato Directo Indirecto Registro Registro Indirecto Relativo Preindexado Postindexado
0 1 2 3 4 5 6
. . .
100 101 102 103 104 105 18 100 17 15
PC = 100 AX = 20 BX = 5 CX = 4 DX = 100
0 1 2 3 4
5 100
100
. . .
100 101 102 103 104 5
Por cada tipo de direccionamiento escriba una instruccin de mquina que almacene en AX el valor 5. Utilice los siguientes valores en los registros de CPU y en la memoria principal. Asuma que estos nunca cambian.
Ciclos de Mquina
Ciclos de Mquina
La funcin de una computadora es ejecutar programas. La ejecucin de un programa consiste en ejecutar una secuencia de instrucciones de mquina. Cada instruccin de mquina esta a su vez compuesta de un conjunto de ciclos llamados ciclos de instrucciones. Cada uno de los ciclos de instrucciones esta compuesto de una serie de pasos conocidos como microoperaciones.
Programa
Ciclo de instruccin
. . . . . . . .
Ciclo de instruccin
Ciclo de Instruccin
Captacin
Interrupcin
Indirecto
Ejecucin
Ocurre al inicio de cada ciclo de mquina. Produce que una instruccin de mquina sea trada de memoria principal. Pasos del ciclo:
Se asume que existe un reloj para sincronizar la ejecucin.
Tiempo 1:
Mover el contenido del PC al MAR. Mover el contenido de la direccin de memoria apuntado por el MAR al MDR. Incrementar el contenido del PC en uno. Mover el contenido del MDR al IR.
Tiempo 2:
Tiempo 3:
MAR MDR PC IR
PC Memoria PC + 1 MDR
Ciclo
Indirecto.
Obtiene los operandos indirectos de la instruccin de mquina. Objetivo es transformar un direccionamiento indirecto en uno directo. Microoperaciones del ciclo:
Se asume un formato de instruccin de una sola direccin. t1: MAR IR(direccin) t2: MDR Memoria t3: IR(direccin) MDR (direccin)
Ciclo de Interrupcin.
Puede ocurrir al finalizar el ciclo de ejecucin. Se ejecuta si alguna seal de interrupcin ha sido emitida. Objetivo: Guardar la siguiente direccin a ejecutarse. Pasar el control a la rutina de interrupcin. Microoperaciones del ciclo: t1: MDR PC t2: MAR Direccin almacenamiento PC Direccin rutina interrupcin t3: Memoria MDR
Ciclo de Ejecucin.
El nmero de microoperaciones a ejecutarse no es fijo como en los ciclos de captacin, indirecto e interrupcin. La cantidad de microoperaciones depende de la instruccin de mquina. Ejemplos:
Ejecucin
MUL 5
Ciclo de Captacin
PC Memoria PC + 1 MDR
Ciclo de Ejecucin
t4:
AX
AX * 5
PC Memoria PC + 1 MDR
Ciclo Indirecto
t4: MAR t5: MDR t6: IR(20) IR(10) Memoria MDR(20)