Sei sulla pagina 1di 18

Ejecución de un Programa en

un MCU genérico.
EL CONCEPTO DEL PROGRAMA ALMACENADO.

VS
EL CONCEPTO DE CICLO DE MAQUINA.

INICIO

FETCH (TRAER)

EJECUTE (EJECUTAR)
Programa para sumar 710 + 1010 y dejar el contenido en
el acumulador.
MPU
Genérico.

ME MOR IA Programa.

Dirección Contenido Binario Contenido


0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
El contador del programa debe
cargarse con el
inicio del programa (0 0).

ME MOR IA
Dirección Contenido Binario Contenido
0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
FASE DE TRAER (FETCH)
Los eventos de esta fase se controlan por medio de la unidad de control y secuencia.

El contenido del contador del


programa se transfiere
al registro de dirección.

ME MOR IA
Dirección Cont. Binario Contenido
0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
Bus de
dirección.
El contenido
ME MOR IA del registro de
Dirección Cont. Binario Contenido dirección pasa
al bus de
0000 0000 1000 0110 LDA
dirección.
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
El contenido de la
localidad de memoria
seleccionada pasa al
bus de datos y se
transfiere al registro de
datos del µPU.

ME MOR IA
Dirección Cont. Binario Contenido
0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
Fin de la FASE DE TRAER
(FETCH).
Decodificación de la
instrucción.
El código LDA se transfiere
al decodificador de
instrucción, el decodificador
informa a la unidad de
control y secuencia que
debe producir los pulsos de
control necesarios para
efectuar la instrucción.
ME MOR IA
Dirección Cont. Binario Contenido
0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
FASE DE EJECUTAR (EJECUTE)
Una vez reconocida la instrucción LDA, el siguiente paso es leer el siguiente
Byte de memoria y cargarlo en el acumulador.

Se transfiere el
contenido de contador
del programa al registro
ME MOR IA de dirección.
Dirección Cont. Binario Contenido
0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
El contenido del
Bus de
registro de dirección
dirección.
se transfiere al bus
ME MOR IA de dirección y el
contador del
Dirección Cont. Binario Contenido programa se
0000 0000 1000 0110 LDA incrementa a (02) .
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
El contenido de la localidad
de memoria se transfiere al
registro de datos.
Posteriormente pasa al
acumulador.

ME MOR IA
Dirección Cont. Binario Contenido
Bus de
0000 0000 1000 0110 LDA
datos.
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
TRAER LA INSTRUCCIÓN DE ADD

4
ME MOR IA

3 Dirección Cont. Binario Contenido


0000 0000 1000 0110 LDA Bus de
0000 0001 0000 0111 7 datos.
Bus de
dirección. 0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
TRAER LA INSTRUCCIÓN DE ADD

1.- El contenido del contador del programa (02) se transfiere al


registro de dirección.

2.- El contador del programa se incrementa a (03).

3.- La dirección se coloca en el bus de dirección.

4.- El contenido de la localidad de memoria se transfiere al


registro de datos.

5.- El contenido del registro de datos se decodifica por


el decodificador de instrucción.
EJECUTAR LA INSTRUCCIÓN DE ADD

ME MOR IA 4

3 Dirección Cont. Binario Contenido


0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT
EJECUTAR LA INSTRUCCIÓN DE ADD

1.- El contenido del contador del programa se transfiere al


registro de dirección.

2.- El contador del programa se incrementa a (04), antes de l


a siguiente FASE DE FETCH.

3.- La dirección del operando se coloca en el bus de dirección.

4.- El operando (10 10) se transfiere al registro de datos.

5A.- El operando (10 10) se transfiere al registro del ALU.

5B.- Simultáneamente, el otro operando (7) se transfiere del acumulador a


la otra entrada del ALU.

6.- El ALU suma los operandos. La suma (1710)


se carga en el acumulador.
TRAER Y EJECUTAR LA INSTRUCCIÓN DE HLT

3 4
ME MOR IA
Dirección Cont. Binario Contenido
0000 0000 1000 0110 LDA
0000 0001 0000 0111 7
0000 0010 1000 1011 ADD
0000 0011 0000 1010 10
0000 0100 0011 1110 HLT

Potrebbero piacerti anche