Anda di halaman 1dari 53

Organizacin de la unidad central de procesamiento (CPU)

Organizacin de Estructuras Universidad Americana


1

Unidad Central de Proceso (CPU)


Memoria
Programa Datos

Interfaz de Entrada y Salida

1 2

Perifricos

CPU
Unidad Aritmtica y Lgica

Unidad de Control

n
2

A D

Funcin: ejecutar secuencias de instrucciones.


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.

Unidad Arimtica y Lgica (ALU)

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.

Unidad de Control (UC)

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

Almacenamiento temporal interno del CPU.

Acceso de alta velocidad. Localizacin de la ltima instruccin. Almacenar instrucciones y datos mientras se ejecuta alguna instruccin.

Dos tipos:

Disponibles al usuario. Control y Estado (UC).

Disponibles al usuario:

Propsito General. AX, BX, CX, DX (H/L). Registros de Datos. Registros de Direccin. Propsito general.

SI y DI.
SP, BP, CS, DS, ES, SS, IP.

Direccionamiento.

Banderas (cdigos de condicin). Control: control CPU. Estado: estado de resultados de operaciones aritmticas y lgicas.
8

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.

Signo, cero, acarreo, igual, overflow, etc.


9

Instrucciones de Mquina

10

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.

11

Representacin de Instrucciones.

Secuencia de bits.
Mnemnicos.

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

La estructura de una instruccin es conocida como: formato de instruccin.

12

Diseo del Conjunto de Instrucciones.

Complejo y Debatido.

1.

Tipos de datos:
1.
2. 3. 4.

Direcciones. Nmeros. Caracteres. Lgicos.

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.
13

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.

6.

Nmero de direcciones de las instrucciones:


Cero HLT. Una DIV BX Dos MOV AL, 1

14

Instrucciones de Transferencia de Datos


MOV PUSH, POP XCHG IN, OUT

Mover Operaciones en Stack Intercambiar Puertos entrada/salida

MOV destino, fuente Transfiere datos entre registros y memoria. Destino: registro o localidad de memoria. Fuente: registro, direccin memoria o nmero.

MOV AX, 10 MOV BX, DX

15

Instrucciones Aritmticas

ADD / SUB INC / DEC NEG MUL / DIV

Suma / Resta Incremento / Decremento Complemento a dos Multiplicacin / Divisin

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
16

INC / DEC Op Incremento / Decremento de Op en una unidad. Resultado almacenado en Op.

MOV AX, 8 INC AX MOV BX, AX DEC BX

MUL / DIV Op Multiplicacin / Divisin de AX por / entre Op. Resultado almacenado en AX.

MOV AX, 5 MOV BX, 4 MUL BX DIV 3


17

Instrucciones Lgicas

AND OR NOT

AND OR Inclusivo Complementar (a uno)

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.

MOV AL, 5 AND AL, FH OR AL, 0H NOT AL


18

Instrucciones de Manipulacin de Cadenas


MOVS CMPS SCAS LODS STOS

Mover cadenas Comparar cadenas Recorrer cadena Leer cadena Guardar cadena

19

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

Registro de Banderas de 16 bits Procesador 8088

20

Instrucciones de Control de Programa


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.

21

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 INC AX JMP Fin SumaDos: ADD AX, 2 Fin: ...
22

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.

En cada LOOP: CX = CX 1, si CX <> 0 salta.

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
23

Instrucciones de Control del Procesador

CLC CLD CLI CMC STC STD STI HLT

Limpiar bandera CF Limpiar bandera DF Limpiar Bandera IF Complementar CF Prender CF Prender DF Prender IF Detener el procesador (Alto)

24

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.

Ej: 1, 1, 2, 3, 5, 8, 13, ...

Formalmente se define de la siguiente manera:


F(1) = 1 F(2) = 1 F(K) = F(K-1) + F(K-2) Ej: F(5) = F(4) + F(3) = 3 + 2 = 5 F(4) = F(3) + F(2) = 2 + 1 = 3 F(3) = F(2) + F(1) = 1 + 1 = 2

25

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 MOV DX, AX Fin: ...
26

SHL Op1, Op2

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.

MOV AX, 11001100B SHL AX, 1 AX = 10011000, CF = 1

27

Modos de Direccionamiento

28

Modos de Direccionamiento

Permiten interpretar los bits de una direccin para encontrar el valor de un operando. Modos:

Implcito Inmediato Directo Indirecto Registro Registro Indirecto Desplazamiento

No todas las computadoras utilizan todos los modos.


29

Direccionamiento Implcito.

No necesita recibir la direccin del operando, esta se encuentra implcita en la operacin. Ej.:
MUL BX

Ventaja:

Acceso rpido.

Desventaja:

Conocer perfectamente la operacin.


30

Direccionamiento Inmediato.

Recibe el operando y no la direccin de este. Ej.:


MOV AX, 4

Ventaja: no requiere memoria extra para traer el operando. Desventaja: Solo puede utilizar constantes.

31

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.
32

Direccionamiento Indirecto.

Recibe la direccin de la palabra en memoria (apuntador) que contiene la direccin del operando.

Ej.: MOV AX, [[10]]


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).
33

Direccionamiento de Registro (directo). Similar al direccionamiento directo.

Recibe un registro en lugar de una direccin en memoria.


Ej.:
MOV AX, BX

Ventaja:

No necesita referencias a memoria.

Desventaja:

Nmero limitado de registros en el CPU -> usar este direccionamiento para operandos muy utilizados.

Este es el modo de direccionamiento ms comn.


34

Direccionamiento de Registro Indirecto. Similar al direccionamiento indirecto.

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.

Utilizado para apuntadores de uso frecuente.

35

Direccionamiento de Desplazamiento. Combina los modos de direccionamiento directo y de registro indirecto.

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.

36

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.
37

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
38

PC = 100 AX = 20 BX = 4 CX = 5 DX = 2 DIV BX Implcito MOV AX, 10 Inmediato MOV AX, [0] Directo MOV AX, [[2]] Indirecto MOV AX, BX Registro MOV AX, [CX] Registro Indirecto MOVPC AX, DXRelativo MOV AX, [DX,BX] Preindexado MOV AX, [BX]BX Postindexado

0 1 2 3 4 5 6

7 100 100 20 105

. . .
100 101 102 103 104 105 18

100
17 15

39

PC = 100 AX = 20 BX = 5 CX = 4 DX = 100

0 1 2 3 4

5 100

100

. . .

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.

100 101 102 103 104

40

Ciclos de Mquina

41

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.

42

Programa

Ciclo de instruccin

. . . . . . . .

Ciclo de instruccin

Captacin
Indirecto Ejecucin Interrupcin

Captacin
Indirecto Ejecucin Interrupcin

43

Ciclo de Instruccin

Captacin

Interrupcin

Indirecto

Ejecucin
44

Ciclo de captacin (fetch).

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. Memory Address Register

Tiempo 2:

Mover el contenido de la direccin de memoria apuntado por el MAR al MDR. Memory Data Register Incrementar el contenido del PC en uno. Program Counter Mover el contenido del MDR al IR. Registro de instruccin
45

Tiempo 3:

Microoperaciones del ciclo de captacin:


t1: t2: MAR MDR PC IR PC Memoria PC + 1 MDR

t3:

46

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: t2: t3:

MAR MDR IR(direccin)

IR(direccin) Memoria MDR (direccin)

47

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. Micro operaciones del ciclo: t1: MDR PC t2: MAR Direccin almacenamiento PC Direccin rutina interrupcin t3: Memoria MDR

48

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:

ADD AX, [5]


t1: MAR t2: MDR t3: AX IR(5) Memoria AX + MDR

MOV AX, [100]


t1: MAR t2: MDR t3: AX IR(100) Memoria MDR

49

Diagrama de Flujo del Ciclo de Instruccin

50

Ejecucin de una instruccin completa.


MUL 5

Ciclo de Captacin
t1:MAR t2:MDR PC t3:IR PC Memoria PC + 1 MDR

Ciclo de Ejecucin
t4:AX AX * 5

51

SUB AX, [[10]] Ciclo de Captacin


t1: MAR t2: MDR PC t3: IR

PC Memoria PC + 1 MDR

Ciclo Indirecto
t4: MAR t5: MDR t6: IR(20) IR(10) Memoria MDR(20)

Ciclo de Ejecucin (SUB AX, [20])


t7: MAR t8: MDR t9: AX IR(20) Memoria AX - MDR

52

Gracias

53

Anda mungkin juga menyukai