Você está na página 1de 34

EJECUCIN DE

INSTRUCCIONES(1)
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.

Miguel ngel Asensio Hernndez
Profesor Tcnico de Formacin Profesional
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) Fase de Bsqueda

b) Fase de Ejecucin

EJECUCIN DE INSTRUCCIONES(3)
La culminacin de cada una de estas fases necesita
de uno a seis ciclos de reloj.

BSQUEDA
Reloj
Lectura de Operandos
Operacin
Decodificacin
1 2 3 4 5 6 7 8 9 10
Representacin de las fases de una instruccin en funcin del reloj del sistema.
Fase de Bsqueda: (1)
Transferir el contenido del Contador de Programa
(CP) al registro de Direcciones (RD).
1.
2.
3.
4.
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.
Esquema bsico de un computador didctico
PARTES DEL COMPUTADOR
REGISTRO
ACUMULADOR
ALU
CONTROL
ALU
MEMORIA
C.P.U.
RELOJ Y SEALES
DE CONTROL
66 (RESULTADO)
STOP
8
DIRECCIN
BUS DE DATOS
BUS DE DIRECCIONES
DECODIFICADOR
DE INSTRUCCIONES
CONTADOR DE
PROGRAMA
REGISTRO DE
INSTRUCCIONES
CARGAR ACUM.
45
SUMAR
2 1
GUARDAR
1
2
3
4
5
6
7
8
9
Fase de Bsqueda: (2)
MEMORIA
CP: 3F8h
RI
RM: 1001101
1001101
RD
1
2
3
4
1001101
Dato o instruccin
Dato o instruccin
Incremento
Direccin de memoria
Registro de
Direcciones
Registro de Instrucciones
Registro de Memoria
Registro Contador de Programa
5
Decodificacin ...
Fase de Ejecucin: (3)
comprende el conjunto de operaciones elementales
especficas de la instruccin en curso.
5. Decodificacin de la Instruccin. Por ejemplo la Instruccin
ADD.
(la instruccin es cambiada por su cdigo mquina correspondiente)
6.
CO ADDn OP 1 MD MD CR CR CD CD OP 2:
Instruccin
Cdigo de
operacin.
Operando 1
Parte de la instruccin (operando 2)
Modo de direccionamiento
Campo de registro
Campo de direccin: desplazamiento o dato
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.
8. 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.
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.
direccin
memoria
01
02
03
04
05
06
07
08
09
10
11
12
13
3
06
2
4
Nota: no se pueden mezclar dos datos con
direccionamiento directo, es decir: directo-directo.
modos de direccionamiento.
RELATIVO A REGISTRO; aclarar primero que existen varios tipos de
registros.

Registro de instruccin RI
Registro de memoria RM
Registro de direcciones RD
Contador de programa 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.
I
I
I
C.O.
C.O.
C.O.
OP. 1
OP. 1
OP.2
MD. CR. D
16 bits
Cdigo de Operacin
Operando 1
dato
Mtodo de direccionamiento
Campo de registro
Tipo de registro Desplazamiento,
direccin o dato
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.
Registros de
Datos
Registros de
Direcciones
Registros de
control
CP
SR
SP (A7)
PROCESADOR
0
1
FFEFFF
MEMORIA
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
PUERTOS DE ENTRADA/SALIDA
FFF000
FFF002 FFF004
formatos de palabra.
32 bits
16 bits
8 bits
Formatos de palabra.
(+) (-)
01
02
03
04
05
Byte ms significativo
Byte menos significativo
8 bits
byte (B)
palabra (W)
palabra larga (L)
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:
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.

POSICIN
DE MEMORIA
0
1
2
3
4
5
6
7
DIRECCIN
DE n-bits
CONTENIDO
DE MEMORIA
000
001
010
011
100
101
110
111
0 1 1 0
0 0 1 0
1 1 0 0
0 0 0 1
1 1 1 0
1 1 1 0
0 0 0 0
0 1 1 0
DIRECCIN EN
HEXADECIMAL
CONTENIDO EN
HEXADECIMAL
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 en Binario
Representacin en Hexadecimal
ejemplo de representacin de la informacin
representacin de la informacin
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 1110 1000 . 0101 1000
6 E 8 5 8

A29.C4H

1010 0010 1001 . 1100 0100
A 2 9 C 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 Hexadecimal Nemotcnico Descripcin
0010001000000000 2200 MOVE.L D0, D1 (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 Hexadecimal Nemotcnico Descripcin
0100111001110001 4E71 NOP No operacin

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.

el Contador de Programa
I nterconexin con los buses y la memoria.
El dato se transfiere al procesador a travs del bus de datos y el registro de
instruccin, RI.
MEMORIA
B. Direcciones
B. Datos
B. Control
Direccin
Lectura / escritura
R / W
Datos
I nterconexin con los buses: arquitectura
de bus interno.
BUS INTERNO
CONTADOR DE PROGRAMA PUNTERODE PI LA
REGI STROTEMPORAL
B C
D E
H L
REGI STROS DE PROPSI TO
GENERAL.
REGI STRODE
DIRECCIONES
BUS
DE
DIRECCIONES
DEL
SISTEMA
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.
Todos estos son
registros internos,
ubicados en el interior
de la propia CPU.
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.
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.
1
2
3
BSQUEDA
EJECUCIN
PARO
INSTRUCCIN EN PROCES O
EJECUCIN DE UNA
INSTRUCC IN COMPLETA
I
N
S
T
R
U
C
C
I

N

H
A
L
T
REPOSICI N
R
E
P
O
S
I
C
I

N
Ciclos de mquina de un computador
Representacin del ciclo mquina.
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
BD
CP
RI
Bus de contr ol
Bus de direcciones
Bus de datos
Registro de estado
Secuenciad or
Dec odificador
Sea les de cont rol
ICP
CCPBA
CRIBD
SBRE
. .. .. ..
SBRS
OP
CAC
CRMM
. .. .. .. ..
Reloj
ICP CCPBA
CRI BD
CIRCUITO
DE
CONTROL
Con tador de Programa
Registro de Instruc cin
Estructura funcional de la Unidad de Control