Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
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.
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
Pg. 3