Está en la página 1de 3

Laboratorio de Sistemas Basados en Microprocesadores Prctica 2: Juego de instrucciones.

Vectores de interrupcin
En esta prctica se realizar un programa con una aplicacin prctica. El alumno deber realizar el correspondiente anlisis de los requisitos expuestos y realizar su implementacin. En el desarrollo de esta prctica ser necesario emplear una buena parte del juego de instrucciones del 8086, as como instalar un vector de atencin a una interrupcin. Programa 1: pract2a.asm Desarrollar un programa en lenguaje ensamblador, que efecte el determinante de una matriz A de 3 x 3 nmeros enteros. El resultado deber almacenarse en la variable B . A tal fin, en el segmento de datos debern declararse A y B, asignndole valores iniciales a A y cero a B.

Una vez efectuado el determinante, deber presentarse en pantalla la matriz y el resultado, para lo cual deber implementarse una subrutina auxiliar que convierta un nmero entero a una cadena de caracteres ASCII que represente los resultados como nmeros en notacin decimal. Por ejemplo: el nmero 0112h deber ser convertido a la cadena de caracteres ASCII "274" (32h, 37h y 34h). Adicionalmente se deber pedir e introducir por teclado el valor de la matriz A ( , tal

como se vio en la practica 0 utilizando las interrupciones de MS-DOS


Notas:

Para acceder a los nmeros de la matriz A utilizar direccionamiento base-indexado con desplazamiento fijo. Los nmeros de A son de 8 bits, mientras que B es de 16 bits. Los valores almacenados en A son fijos, definidos por el programador, pero pueden ser introducidos por teclado por el usuario. La subrutina que convierte de binario a ASCII debe recibir el nmero a convertir en el registro BX, y retornar en DX:AX la direccin de memoria a partir de la que se encuentra la cadena de caracteres ASCII (En DX el segmento y en AX el desplazamiento). La cadena de caracteres debe estar terminada con '$', a fin de facilitar la impresin mediante la funcin 9 de la INT 21h del MS-DOS (ver ejemplo alumno.asm de la prctica 0). Tener en cuenta que los nmeros pueden ser negativos, representados en complemento a 2.

Laboratorio de Sistemas Basados en Microprocesadores. Enunciado prctica 2. Curso 2013-2014.

Pg. 1

Programa 2: pract2b.asm
Instalacin de interrupciones. En el programa de la prctica anterior, instalar la subrutina que convierte de binario a ASCII en la INT 50h. sta debe recibir el nmero a convertir en el registro BX, y retornar en DX:AX (segmento : desplazamiento) la direccin de memoria a partir de la que se encuentra la cadena de caracteres ASCII y en BX el nmero de caracteres ASCII obtenidos.

ENTREGA DE LA PRCTICA: Fecha y contenido.


Se deber subir a Moodle un fichero zip que contenga los ficheros fuentes de los programas y el fichero makefile. Slo podr ser subido por uno de los miembros de la pareja. Los ficheros a entregar debern contener en la cabecera los nombres de los autores y el identificador de la pareja. As mismo, el cdigo de los ficheros entregados deber estar correctamente tabulado y comentado. La falta de comentarios o la baja calidad de stos, ser calificada negativamente. El lmite de fecha de subida de los ficheros, para cada grupo es el siguiente: Grupos del Lunes: 16 de Marzo de 2014 a las 23:55h Grupos del Martes: 17 de Marzo de 2014 a las 23:55h Grupos del Mircoles: 18 de Marzo de 2014 a las 23:55h Grupos del Viernes: 20 de Marzo de 2014 a las 23:55h

Anexo: Funciones del sistema operativo para imprimir texto y finalizar la ejecucin. La mayora de los servicios del sistema operativo MS-DOS se pueden acceder mediante la INT 21h. Antes de invocar a dicha interrupcin se debe cargar en el registro AH el nmero de funcin requerida, y en otros registros los parmetros necesarios. A continuacin se detallan tres funciones de uso habitual en los programas a desarrollar en el laboratorio. Salida de un carcter por pantalla INT 21H AH = 2H Descripcin: La funcin de esta rutina es visualizar un carcter. Uso: Entrada: AH = 2H DL contiene el cdigo ASCII del carcter a visualizar. Salida: Ninguna Registros afectados: Ninguno Ejemplo: mov ah, 2 ; Nmero de funcin = 2 mov dl, 'A' ; Se desea imprimir la letra A int 21h ; Ejecuta el servicio del sistema operativo
Laboratorio de Sistemas Basados en Microprocesadores. Enunciado prctica 2. Curso 2013-2014. Pg. 2

Sacar un string a la pantalla INT 21H AH = 9H Descripcin: Su funcin es la de sacar una cadena de caracteres ASCII por pantalla. Uso: Entrada: AH = 9H DS contiene el valor de la direccin del segmento del comienzo de la cadena de caracteres a sacar. DX contiene el offset de dicha cadena en el segmento anterior. El ltimo byte de la cadena de caracteres debe ser el carcter $, que no se muestra en pantalla. Salida: Ninguna Registros afectados: AX Ejemplo: .DATA Texto DB "Hello world",13,10,'$' ; string terminado con los caracteres CR,LF y'$' . CODE ......... ; Si DS es el segmento donde est el texto a imprimir: mov dx, offset Texto ; DX : offset al inicio del texto a imprimir mov ah, 9 ; Nmero de funcin = 9 (imprimir string) int 21h ; Ejecuta el servicio del sistema operativo Fin de programa INT 21H AX = 4C00H Descripcin: Esta rutina finalizar el programa y devolver el control al DOS. Debe llamar a esta rutina para finalizar los programas. Uso: Entrada: AX = 4C00H Salida: Ninguna Registros afectados: Ninguno

Laboratorio de Sistemas Basados en Microprocesadores. Enunciado prctica 2. Curso 2013-2014.

Pg. 3

También podría gustarte