svg153 / AC_proyecto.2015b

Pruebas del proyecto de Arquitectura de Computadores (AC) de la Escuela Técnica Superior de Ingenieros Informáticos (ETISIINF, antigua Facultad de Informática, FI) de la Universidad Politécnica de Madrid (UPM).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AC_proyecto.2015b

Pruebas del proyecto de Arquitectura de Computadores (AC) del Grado de Ingeniería Informática de la Escuela Técnica Superior de Ingenieros Informáticos (ETISIINF, antigua Facultad de Informática, FI) de la Universidad Politécnica de Madrid (UPM).

PRECAUCIÓN: Puede ser que las pruebas hayan cambiado respecto a las que eran cuando se creó este fichero.

Info

Infomacion:
Titulación Grado de Ingeniería Informática. Plan 09.
Año 2014-2015
Materia Arquitectura de Computadores
Semestre 2 Semestre. Mañana
Proyecto Proyecto E/S Interrupciones
Archivo codigo_pruebas.s

Información del proyecto:

Nota: Aqui teneis la sintaxis del m68kasm para Gedit, para poder ver mejor el codigo.

Autores

Archivos de la carpeta

  • codigo_pruebas.s: Código con las pruebas del corrector de la asignatura.
  • cont.s: script que cuenta las pruebas correctas pasadas por el corrector. Utiliza corrector.txt de entrada y da como salida el número de pruebas pasadas en pantalla pruebas_pasadas.txt.

Uso de las pruebas

  • Copiamos del fichero codigo_pruebas.s al fichero del proyecto es_int.s, lo siguiente:
  • Copiar la subrutina 'CheckSOL:' ya que es la que comprueba si la solución, que nosotros sabemos que tiene que salir, se corresponde con la que sale.
  • Copiar las subrutinas 'LEECAR2:' y 'ESCCAR2:' ya que las usan las pruebas para leer o escribir caracteres.
  • Copiar el conjunto de datos que se encuentran englobados entre dos comentarios de:
* ----------------------------------------------------------> DATOS PARA SCAN
  • Copiar la prueba o pruebas que necesitemos. Teniendo en cuenta que han podido cambiar respecto a cuando se creó este fichero.
  • CUIDADO: con los nombres de las etiquetas, puede que es_int.s no compile si hay etiquetas iguales.
  • En el fichero es_int.s, deberíamos tener una subrutina que haga de 'main', normalmente llamada 'INICIO:' o 'START:', la cual se define al principio del código:
    ORG     $0
  	DC.L    $8000           		* Pila
  	DC.L    INICIO          		* PC
  • Esa subrutina 'INICIO:' debería tener esta formar:
INICIO: 
    
    BSR    INIT                   * Inicia el controlador
    
  **** MANEJADORES DE EXCEPCIONES
    MOVE.L   #BUS_ERROR,8         * Bus error handler
    MOVE.L   #ADDRESS_ER,12       * Address error handler
    MOVE.L   #ILLEGAL_IN,16       * Illegal instruction handler
    MOVE.L   #PRIV_VIOLT,32       * Privilege violation handler
    
  *** PERMITIMOS LAS INT -> DESCOMENTAR SOLO CUANDO estemos con la RTI
   * MOVE.W  #$2000,SR            * Permitir interrupciones
  
  **** Llamadas a PP del corrector
    BSR   pr45RTI    

  **** Paramos      
    BREAK
    NOP

About

Pruebas del proyecto de Arquitectura de Computadores (AC) de la Escuela Técnica Superior de Ingenieros Informáticos (ETISIINF, antigua Facultad de Informática, FI) de la Universidad Politécnica de Madrid (UPM).

License:GNU General Public License v3.0


Languages

Language:Assembly 95.8%Language:Shell 4.2%