Você está na página 1de 34

EJECUCIN DE INSTRUCCIONES(1)

Miguel ngel Asensio Hernndez


Profesor Tcnico de Formacin Profesional

La funcin bsica que realiza un computador es la ejecucin de un programa. Un programa consiste en un conjunto de instrucciones y datos almacenados en la unidad de memoria. La CPU es la encargada de ejecutar las instrucciones especificadas en el programa.

EJECUCIN DE INSTRUCCIONES(2)

La secuencia de operaciones realizadas en la ejecucin de una instruccin constituye lo que se denomina ciclo de instruccin. Lo ms cmodo es considerar que el procesamiento del ciclo de instruccin consta de dos fases:
a) b) Fase de Bsqueda Fase de Ejecucin

EJECUCIN DE INSTRUCCIONES(3)
La culminacin de cada una de estas fases necesita de uno a seis ciclos de reloj.
Reloj 1 2 3 4 5 6 7 8 9 10

BSQUEDA Decodificacin

Lectura de Operandos

Operacin

Representacin de las fases de una instruccin en funcin del reloj del sistema.

Fase de Bsqueda: (1)


1. Transferir el contenido del Contador de Programa (CP) al registro de Direcciones (RD). Pasar a registro de Memoria (RM) el dato almacenado en la direccin de memoria indicada por RD. Transferir el dato ledo desde el RM al registro de instruccin (RI). Incrementar el valor del Contador de Programa para apuntar a la instruccin siguiente. 2.

3.

4.

Esquema bsico de un computador didctico

PARTES DEL COMPUTADOR


BU S D E DAT O S D IRECCIN 1 2 3 4 5 6 7 8 9 66 (RESU LTAD O )

CARGAR ACUM . 45 SU MAR 21 GUARDAR 8 ST OP

CON TAD OR D E PRO GRAMA

REGIST RO D E IN ST RU CCION ES

BU S D E D IRECCION ES

D ECOD IFICAD OR D E IN ST RU CCIO N ES

C.P.U . RELOJ Y SE ALES D E CON T ROL

CO N T RO L M EM ORIA REGISTRO ACU M U LAD OR ALU

ALU

Fase de Bsqueda: (2)


1
Incremento

Registro de Direcciones
Direccin de memoria

MEMORIA

CP:

3F8h

Registro Contador de Programa

Registro de Instrucciones
RI

Dato o instruccin

1001101

RD

Dato o instruccin

1001101 3

RM:

1001101

Registro de Memoria

Decodificacin ...

Fase de Ejecucin: (3)


5.

comprende el conjunto de operaciones elementales especficas de la instruccin en curso.

Decodificacin de la Instruccin. Por ejemplo la Instruccin

ADD.

(la instruccin es cambiada por su cdigo mquina correspondiente)

Instruccin CO ADDn OP 1 MD CR CD OP 2: MD CR CD

Cdigo de operacin.

Operando 1

Modo de direccionamiento

Campo de registro Campo de direccin: desplazamiento o dato

Parte de la instruccin (operando 2)

6.

Transferencia del campo CD de la instruccin en curso ( este campo contiene la direccin de memoria en la que se encuentra el operando, y que se encuentra en el registro RI desde que finaliz la fase de bsqueda), al registro RD. Se inicia, por tanto, un proceso similar al de la fase de bsqueda, pero en esta ocasin para buscar en memoria el operando de la instruccin.

...fase de ejecucin:
7. Lanzar un ciclo de lectura de memoria que ponga en RM el operando almacenado en la direccin indicada por RD. Transferencia del dato ledo desde el RM al registro intermedio ,Ro2, del Operador. Paralelamente se puede transferir el otro operando desde el acumulador, AC, (contenido en l un instante anterior), al registro intermedio Ro1. Realizar la operacin de SUMA (ADD) y almacenar el resultado en el AC. 8.

9.

modos de direccionamiento.
Consiste en determinar la forma en la que se va ha leer o escribir un dato.

Modos de direccionamiento
INMEDIATO; el dato est en la propia instruccin ( ejemplo: SUMA 7, 3), en el ejemplo los dos son datos, el resultado es 10. DIRECTO; en la instruccin est contenida la direccin de memoria donde se encuentra el dato (ejemplo: SUMA 7, 01) , 7 es un dato, 01 es una direccin de memoria donde se encuentra el dato. En la direccin de memoria 01 est contenido el dato, 3; el resultado es: [7 + (01=3)] = 10.
Nota: no se pueden mezclar dos datos con direccionamiento directo, es decir: directo-directo.
direccin memoria

01 02 03 04 05 06 07 08 09 10 11 12 13

06 2 4

modos de direccionamiento.
RELATIVO A REGISTRO; aclarar primero que existen varios tipos de registros. Registro de instruccin Registro de memoria Registro de direcciones Contador de programa RI RM RD CP

(Ejemplo: SUMA 3+CP, 1), en este caso el direccionamiento es relativo a registro Contador de Programa. 4 CP; 3+4=(direccin de memoria) 07. Si 1 en la instruccin es dato el resultado es: 4+1= 5.
Como hemos observado, la direccin en la que se encuentra el dato se tiene que calcular. La direccin del puntero + el desplazamiento indicado en la propia instruccin Nos lleva al dato.

modos de direccionamiento.
INDEXADO o direccionamiento a Registro Base. Un registro ndice contiene una direccin de referencia que acta como puntero: se emplea para recorrer estructuras de datos tipo vector o tabla. Su valor se modifica con frecuencia.
INDIRECTO; la instruccin contiene una direccin de memoria que lleva a otra direccin de memoria en la que se encuentra el dato. (ejemplo: 04, 3), en 04 se encuentra 06 y en 06 est el dato: 2. El resultado es 2+3= 5.

Elementos principales de la Unidad de Control


El CP es un registro que contiene la direccin de la siguiente instruccin que hay que ejecutar. El RI es un registro que contiene la instruccin que se est ejecutando en cada momento. El decodificador se encarga de examinar el cdigo de operacin de la instruccin que se encuentra en el registro de instruccin para determinar que es lo que hay que hacer. El secuenciador ordena que se realicen las operaciones necesarias para ejecutar la instruccin cuyo cdigo de operacin ha examinado el decodificador.

formatos de instruccin
tienen varios formatos.
16 bits

I C.O. I C.O. I C.O.

Cdigo de Operacin

Operando 1

OP. 1 OP. 1

dato

OP.2
Campo de registro

MD.

CR.

D
Tipo de registro Desplazamiento, direccin o dato

Mtodo de direccionamiento

Ejemplo:

Relativo a R. base

R.I.
(registro de instruccin)

Operando 2

Un programa suele estar dividido en dos partes o zonas; una zona para cdigo y otra para datos. Como ya hemos estudiado, una instruccin puede contener el dato propiamente dicho o una direccin de memoria que nos lleve al dato.
Instr. [ etiqueta: ] Cod. Op. [ operandos ] [ ; comentario ]

Ejemplo:

GUARDAR: SUMA 7,3 ; esto es una suma

Para poder trabajar con una CPU determinada, lo primero que debemos conocer es la longitud de palabra de sus registros. Una CPU de 32 bits dispone de los siguientes registros: Datos; D0, ..........................., D7.

Direcciones; A0, ........................., A6.


Los anteriores son registros de acceso a memoria.

Otros registros son:


CP contador de programa, SR registro de estado, SP puntero de pila,

.................
Modelo funcional del sistema. Computador basado en el microprocesador M68000 de Motorola.
MEMORIA Registros de Datos D0 D1 D2 D3 D4 D5 D6 D7 PROCESADOR Registros de Direcciones A0 A1 A2 A3 A4 A5 A6 Registros de control CP SR

0 1

SP (A7)

FFEFFF

PUERTOS DE ENTRADA/SALIDA FFF000 FFF002

FFF004

formatos de palabra.
16 bits
(+) (-)

Formatos de palabra. 32 bits 8 bits

Si trabajamos con registros de 16 bits y deseamos mover datos con una longitud de palabra de 32 bits, tendremos que recurrir a posiciones de memoria contiguas:
8 bits

01 palabra larga (L)

Byte ms significativo

byte (B)

02
03 04 05

Byte menos significativo

palabra (W)

Cdigo de Operacin:
Cdigo de Operacin: CD. OP. | para formato de 32 bits: L | Sintaxis: [Cd. Op.].[L] | para formato de 16 bits: W | | para formato de 8 bits: B |

Ejemplo: instruccin que permite realizar una suma: ADD.W D0, D1 modificadores:
algunos modificadores empleados en instrucciones son:

% binario $ hexadecimal # direccionamiento inmediato


Ejemplo: MOVE.B #10, D1

Representacin de la informacin
En la representacin conceptual de una memoria se tiende a emplear notacin hexadecimal, que es ms fcil de leer y simplifica muchsimo la representacin de la informacin. A pesar de todo, esta forma de escribir las rdenes de un computador resulta tambin algo engorroso para el programador, por lo que se emplean cdigos nemotcnicos que ayudan a comprender el significado de cada combinacin hexadecimal. El lenguaje mquina est ntimamente ligado a la construccin interna del computador. Los programas escritos en lenguaje mquina slo son transportables a otras mquinas de idnticas caractersticas.

representacin de la informacin
ejemplo de representacin de la informacin

Representacin en Binario
POSICIN DE MEMORIA DIRECCIN DE n-bits CONTENIDO DE MEMORIA

Representacin en Hexadecimal
DIRECCIN EN HEXADECIMAL CONTENIDO EN HEXADECIMAL

0 1 2 3 4 5 6 7

000 001 010 011 100 101 110 111

0 0 1 0 1 1 0 0

1 0 1 0 1 1 0 1

1 1 0 0 1 1 0 1

0 0 0 1 0 0 0 0

0H 1H 2H 3H 4H 5H 6H 7H

6H 2H CH 1H EH EH 0H 6H

La H es un sufijo que indica notacin hexadecimal.

representacin de la informacin

La representacin en hexadecimal se hace con agrupaciones de 4-bits. Los nmeros en hexadecimal se escriben con el sufijo H (mayscula o minscula) para indicar el sistema de numeracin.
Ej: 6E8.58H 0110 6 1110 E 1000 8 . 0101 5 1000 8

A29.C4H 1010 A 0010 2 1001 9 . 1100 C 0100 4

Esta representacin slo sera vlida para registros de 4-bits.

Hay que tener presente que en un sistema basado en microprocesador es habitual registros de 8, 16 y 32 bits. Por ejemplo: si el registro A de 8-bits contiene la siguiente secuencia, 1011 0011, se escribira as; B3H. O una direccin de 16-bits sera como sigue: 0000 0100 0001 1101, en hexadecimal 041DH.
Ejemplos con nemotcnicos:
Instruccin MOVE.L D0, D1 Tipo de instruccin: transferencia entre registros.Carga el contenido del registro D0 en el registro D1. Ambos son de 32 bits por lo que supone el intercambio entre ellos de una palabra larga. Cdigo: Binario 0010001000000000

Hexadecimal 2200

Nemotcnico MOVE.L D0, D1

Descripcin (D0) (D1)

Instruccin NOP Tipo de instruccin: miscelnea. Su misin es no realizar ninguna operacin. Su nico efecto es provocar un pequeo retardo temporal ya que obliga a mantener funcionando el bucle de ejecucin de instrucciones. Cdigo: Binario 0100111001110001 Hexadecimal 4E71 Nemotcnico NOP Descripcin No operacin

el Contador de Programa
Para buscar la instruccin que se debe ejecutar a continuacin, la unidad de control mantiene actualizado un registro de propsito especial o dedicado, el Contador de Programa, CP. El contador de programa es un registro de operacin que siempre mantiene la direccin de la prxima instruccin a ejecutar.

Cuando el procesador es inicializado la unidad de control coloca el contador de programa a cero. La direccin contenida en el contador de programa se coloca en el bus de direcciones. Para ello, la unidad de control transfiere el contenido del CP al registro de direccin, RD.

Interconexin con los buses y la memoria.


El dato se transfiere al procesador a travs del bus de datos y el registro de instruccin, RI.
B. Direcciones B. Datos B. Control

Datos

Direccin

MEMORIA

Lectura / escritura R/W

Interconexin con los buses: arquitectura de bus interno.


La primera palabra de una instruccin es el cdigo de operacin para dicha instruccin. El cdigo de operacin indica a la unidad de control las operaciones requeridas para ejecutar la instruccin.

C N D R EPR G A A O TA O D O R M

PU TER D PI A N O E L

BU I TERN SN O

R STR D EG I O E D EC I N I R C ES O

B D D D S

R STR TEM R L EG I O PO A

B D H

Todos estos son registros internos, ubicados en el interior de la propia CPU.

C E L

Ciclo mquina.
Durante una operacin normal, el procesador busca secuencialmente y ejecuta una instruccin tras otra, hasta que se procesa una instruccin (HALT) de paro. La bsqueda y ejecucin de una instruccin constituye el ciclo de instruccin, que representa a su vez una o ms operaciones de acceso a memoria o a dispositivos de E/S. Cada acceso a memoria requiere un ciclo mquina.

Hay, por ejemplo, siete tipos diferentes de ciclo mquina en el 8085. bsqueda de Cod. Op. lectura de MEMORIA escritura a MEMORIA lectura de E/S escritura a E/S respuesta a interrupcin bus inactivo.

Representacin del ciclo mquina.

INSTRUCCIN E N PROCES O

1
BSQUEDA

2
EJECUCIN

PARO

REPOSICI N

Ciclos de mquina de un computador

IN S

TR U

CC I N

HA LT

EJECUCI N DE UNA IN RUCC I ST N COM PLETA

I N SI C PO RE

El repertorio de instrucciones

Todo computador posee un repertorio de instrucciones que es capaz de ejecutar, constituyendo este, lo que se conoce como lenguaje mquina del computador. Estas instrucciones se encuentran codificadas de acuerdo a un formato especfico del computador, y constituyen una opcin ms del diseo del mismo. En general, el algoritmo de solucin de cualquier problema consiste en varios pasos que deben realizarse en una secuencia especfica. Para implantar tal algoritmo en un computador, estos pasos se descomponen en pasos ms pequeos, cada uno de los cuales representa una instruccin del computador. La secuencia de instrucciones resultante es un programa en lenguaje mquina, que representa al algoritmo en cuestin.

Cada instruccin mquina del computador se ejecuta realizando una secuencia de operaciones elementales ms rudimentarias. A su vez, cada operacin elemental requiere la activacin de un conjunto de seales de control por parte del secuenciador de la Unidad de Control. La activacin de dichas seales se efecta a golpe de reloj.

Unidad de control
La misin fundamental de esta unidad se centra en recoger las instrucciones que componen un programa, interpretarlas y controlar su ejecucin. Dado que las instrucciones se encuentran almacenadas en la unidad de memoria, deber encargarse en primer lugar de recibirlas en el orden establecido. En segundo lugar, deber identificar de qu instruccin se trata en cada caso. Por ltimo, tendr que generar la secuencia adecuada de rdenes para el resto de elementos que constituyen el computador, de manera que cada instruccin se ejecute correctamente.

BC BA
Sea les de control
ICP CCP BA CRIB D SBR E .... .. . SBR S OP CAC CRM M ....... ..

Bus de contr ol Bus de direc cione s

Relo j
Secuenciad or

ICP

CP
Con tador de Programa

CCPB A

Dec odificador

C IRCU ITO DE C ONTR OL

Regis tro de estado


CRI BD

RI

Registro de Instruc cin

Bus de datos BD Estru ctura funcional de la Unidad de Control