lunes, 10 de octubre de 2011

Evaluación 2, Parte 2 ( Introducción a las Tecnologías de la Información)

Autor: Felipe Leal
Competencia: Desarrollo de Software (Nivel 1) 
Palabras Clave: Simuproc, Tecnología, Código.





Recibirán por correo un ejercicio que deben resolver con ensamblador de Simuproc:



" Estimado FELIPE ESTEBAN,LEAL PEÑA

El presente problema consiste en realizar un codigo en ensamblador del Simuproc para calcular el promedio de una lista de numeros en memoria.
Descarga el archivo http://www.inf.uct.cl/~amellado/problemas/fleal2011.asm . En ese archivo encontraras 2 direcciones de memoria dadas, la primera contiene la cantidad de numeros para realizar el calculo del promedio y la segunda posee la lista de numeros a promediar.

Se requiere entonces, resolver el problema usando el simulador de CPU Simuproc, indicando ademas el funcionamiento de los ciclos de reloj para las primeras 4 instrucciones del codigo propuesto.

Ejemplo:
#056   <- primera direccion de memoria
  110   ;cantidad de numeros a promediar
;numeros a promediar
#061  <- segunda direccion de memoria
    10
    100
    111
    101
    100
 +  10
 ---------
 11000 / 110 = 100 -> promedio = 4



Este ejercicio es único para cada alumno y posee un archivo .asm base para realizar el mismo."

Las soluciones secuenciales tendrán menor puntaje y las soluciones generalizadas un mayor puntaje.
La actividad (ambas partes) será evaluada, deben subir 2 archivos a la seccion de tareas del Educa Moodle. Un archivo que contenga la explicacion de los ciclos de reloj y el otro que contenga el archivo .asm con el codigo programado.





RESPUESTA:
SimuProc 1.4 - Vlaye
1bb
444
10AX,077
2006A
2006B
2006C
2006D
2006E
10060,AX
10AX,060
23072
10061,AX
41000
" El Promedio Es: "
99000




Explicación De Los Ciclos De Reloj (Hasta 004)
  • Leo en PC la próxima dirección a ejecutar: 000
  • Envió al MAR la próxima dirección de mem a leer 
  • Llevo al MDR el contenido de dicha dirección de memoria 
  • Le entrego al IR el dato para que lo de decodifique e incremento el PC
  • Leo de la pos 077 de memoria el valor a copiar en AX
  • Escribo 111100 en AX
  • Leo en PC la próxima dirección a ejecutar: 001
  • Envió al MAR la próxima dirección de mem a leer
  • Llevo al  MDR el contenido de dicha dirección de memoria
  • Le entrego al IR el dato para que lo de decodifique e incremento el PC
  • Llevo la Pos de Mem 06A a MAR de donde esta lo que voy a sumar con AX
  • Llevo al MDR el contenido de la dirección 06A
  • Leo AX y MDR para ser llevados a la ALU y realizar la suma
  • Después de realizada la SUMA, almaceno el resultado en AX
  • Leo en PC la próxima dirección a ejecutar: 002
  • Envió al MAR la próxima dirección de mem a leer
  • Llevo al  MDR el contenido de dicha dirección de memoria
  • Le entrego al IR el dato para que lo de decodifique e incremento el PC
  • Llevo la Pos de Mem 06B a MAR de donde esta lo que voy a sumar con AX
  • Llevo al MDR el contenido de la dirección 06B
  • Leo AX y MDR para ser llevados a la ALU y realizar la suma
  • Después de realizada la SUMA, almaceno el resultado en AX
  • Leo en PC la próxima dirección a ejecutar: 003
  • Envió al MAR la próxima dirección de mem a leer
  • Llevo al  MDR el contenido de dicha dirección de memoria
  • Le entrego al IR el dato para que lo de decodifique e incremento el PC
  • Llevo la Pos de Mem 06C a MAR de donde esta lo que voy a sumar con AX
  • Llevo al MDR el contenido de la dirección 06C
  • Leo AX y MDR para ser llevados a la ALU y realizar la suma
  • Después de realizada la SUMA, almaceno el resultado en AX
  • Leo en PC la próxima dirección a ejecutar: 004
  • Envió al MAR la próxima dirección de mem a leer
  • Llevo al  MDR el contenido de dicha dirección de memoria
  • Le entrego al IR el dato para que lo de decodifique e incremento el PC
  • Llevo la Pos de Mem 06D a MAR de donde esta lo que voy a sumar con AX
  • Llevo al MDR el contenido de la dirección 06D
  • Leo AX y MDR para ser llevados a la ALU y realizar la suma
  • Después de realizada la SUMA, almaceno el resultado en AX
  • Leo en PC la próxima dirección a ejecutar: 005


No hay comentarios:

Publicar un comentario