ejemplo de programa - apps4two.com fileejemplo de programa dirección 000100 contenido 000101 000110...

Post on 20-Oct-2019

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

001011

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

Ejecución001011

PC 0000000001000

001100

00000000001

00000000100

00000000001

00000000001

0001000

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

001010Continúa la ejecución

001011

001100

00000000001

00000000100

00000000001

00000000001

1000000000001000

0001000 0010000000000000

0010100000000100

0011000000000001

0011100000000000

1010001000001100

0001111100000000

0000000100000000

1000000000001000

0111100000100000

Algoritmo del programa anterior

i=0;s = 0;while{

(i < 4)

si

==

si

++

1;1;

}

El programa almacenael valor: 1 + 1 + 1 + 1

en la posición de memoria 00000100000

Lenguaje ensamblador

lililili

R0,R1,R2,R3,

0410

bucle: beqaddadd

R0,R3,R0,

R1,R3,R0,

finR2R2

b buclefin: sw R3, 100000

top related