This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Ejemplo de programa
Dirección
000100
Contenido
000101
000110
000111
001000
001001
001010
001011
001100
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Inicio de la ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
001011
001100
?
?
?
?
?
000100 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100
000100
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100
000100
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
000100
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
000101
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
0010000000000000
000101
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC 001
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
000101
0010000000000000
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC 001
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
000101
0010000000000000
Ejecución de instrucciones
RI001
R0 0000000000
Se carga en R0 el valor 0
001 0000000000000
Ejecución de instrucciones
RI010
R1 MP[00000001001]
Dirección Contenido
00000001001
Se carga en R1 el contenido de la posición de memoria00000001001
0000000000000101
010 0100000001001
Ejecución de instrucciones
RI
PC 0000000001000
Se modifica el PC con la dirección 0000000001000
de forma que la siguiente instrucción a ejecutar es la queencuentra en 0000000001000
se
100 0000000001000
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
0010000000000000
000101
Fases de ejecución de una instrucción
PC
RI
! Lectura de la instrucción (ciclo de fetch)" MAR" Lectura" MBR" PC
PC
MemoriaPC + 1 MAR MBR
" RI MBR
! Decodificación de la instrucción
! Ejecución de la instrucción! Volver a fetch
Memoria
Dirección Contenido
000100 0010000000000000
000100 0010000000000000
0010000000000000
000101
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
?
?
?
?
?
000100 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
?
?
?
?
0010000000000000
000100 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC + 1
001100
?
?
?
?
0010000000000000
000101 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
?
?
?
?
000101
0010000000000000
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónR0
00101100000000000
001100
00000000000
?
?
?
0010000000000000
000101 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000000
?
?
?
0010000000000000
000101 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000000
?
?
?
0010100000000100
000101 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC +1
001100
00000000000
?
?
?
0010100000000100
000110 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000000
?
?
?
000110
0010100000000100
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónR1
00101100000000100
001100
00000000000
00000000100
?
?
0010100000000100
000110 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000000
00000000100
?
?
0010100000000100
000110 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000000
00000000100
?
?
0011000000000001
000110 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC +1
001100
00000000000
00000000100
?
?
0011000000000001
000111 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000000
00000000100
?
?
000111
0011000000000001
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónR2
00101100000000001
001100
00000000000
00000000100
00000000001
?
0011000000000001
000111 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000000
00000000100
00000000001
?
0011000000000001
000111 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000000
00000000100
00000000001
?
0011100000000000
000111 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC +1
001100
00000000000
00000000100
00000000001
?
0011100000000000
001000 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000000
00000000100
00000000001
?
001000
0011100000000000
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónR3
00101100000000000
001100
00000000000
00000000100
00000000001
00000000000
0011100000000000
001000 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000000
00000000100
00000000001
00000000000
0011100000000000
001000 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000000
00000000100
00000000001
00000000000
1010001000001100
001000 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC +1
001100
00000000000
00000000100
00000000001
00000000000
1010001000001100
001001 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000000
00000000100
00000000001
00000000000
001001
1010001000001100
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónSi el contenido del registro 001011
01 esigualal del registro 00 se salta a ejecutar la
instrucción almacenada en 000001100001100
00000000000
00000000100
00000000001
00000000000
001001
1010001000001100
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000000
00000000100
00000000001
00000000000
1010001000001100
001001 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000000
00000000100
00000000001
00000000000
0001111100000000
001001 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC + 1
001100
00000000000
00000000100
00000000001
00000000000
0001111100000000
001010 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000000
00000000100
00000000001
00000000000
001010
0001111100000000
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónR3
001011R3 + R2
001100
00000000000
00000000100
00000000001
00000000001
0001111100000000
001010 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000000
00000000100
00000000001
00000000001
0001111100000000
001010 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000000
00000000100
00000000001
00000000001
0000000100000000
001010 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC +1
001100
00000000000
00000000100
00000000001
00000000001
0000000100000000
001011 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000000
00000000100
00000000001
00000000001
001011
0000000100000000
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónR0
001011R0 + R2
001100
00000000001
00000000100
00000000001
00000000001
0000000100000000
001011 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Fetch001011
001100
00000000001
00000000100
00000000001
00000000001
0000000100000000
001011 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchLectura
001011de la Inst.
001100
00000000001
00000000100
00000000001
00000000001
1000000000001000
001011 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
FetchPC
001011PC +1
001100
00000000001
00000000100
00000000001
00000000001
1000000000001000
001100 0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
Decodificación001011
001100
00000000001
00000000100
00000000001
00000000001
001100
1000000000001000
0010000000000000
0010100000000100
0011000000000001
0011100000000000
1010001000001100
0001111100000000
0000000100000000
1000000000001000
0111100000100000
Ejecución del programa
Dirección
000100
Contenido
PC
RI
00011011
000101
000110
000111
001000
001001
001010
EjecuciónSe salta a ejecutar la instrucciónalmacenada en la posición dememoria 0000000001000