Interrupciones-assembler
Enviado por dani0616 • 2 de Junio de 2012 • 1.919 Palabras (8 Páginas) • 521 Visitas
INTERRUPCIONES
Interrupción 21H
Propósito: Llamar a diversas funciones del DOS
Esta interrupción tiene varias funciones, para accesar a cada una de ellas es necesario que el registro AH se encuentre el número de función que se requiera al momento de llamar a la interrupción.
Funciones para desplegar información al video.
02H Exhibe salida09H Impresión de cadena (video) 40H Escritura en dispositivo/Archivo
Funciones para leer información del teclado.
01H Entrada desde teclado0AH Entrada desde teclado usando buffer 3FH Lectura desde dispositivo/archivo
Funciones para trabajar con archivos.
En esta sección únicamente se expone la tarea específica de cada función, para una referencia acerca de los conceptos empleados refiérase a la unidad 7, titulada: "Introducción al manejo de archivos".
Método FCB
0FH Abrir archivo14H Lectura secuencial15H Escritura secuencial16H Crear archivo21H Lectura aleatoria22H Escritura aleatoria
Handles
3CH Crear archivo3DH Abrir archivo3EH Cierra manejador de archivo3FH Lectura desde archivo/dispositivo40H Escritura en archivo/dispositivo42H Mover apuntador de lectura/escritura en archivo
Función 02H
Uso: despliega un carácter a la pantalla.
Registros de llamada: AH = 02HDL = Valor del carácter a desplegar
Registros del Retorno: ninguno.
Esta función nos despliega el carácter cuyo código hexagesimal corresponde al valor almacenado en el registro DL, no se modifica ningún registro al utilizar este comando. Es recomendado el uso de la función 40H de la misma interrupción en lugar de esta función.
Función 09H
Uso: Despliega una cadena de caracteres en la pantalla.
Registros de llamada: AH: 09H
DS: DX = dirección de inicio de una cadena de caracteres.
Ninguno.
Esta función despliega los caracteres, uno a uno, desde la dirección indicada en el registro DS: DX hasta encontrar un carácter$, que es interpretado como el final de la cadena.
Se recomienda utilizar la función 40H en lugar de esta función.
Función 40H
Uso: escribir a un dispositivo o a un archivo.
Registros de llamada:
AH = 40HBX = Vía de comunicación
CX = Cantidad de bytes a escribir
DS: DX = Dirección del inicio de los datos a escribir
Registros de Retorno:
CF = 0 si no hubo error
AX = Número de bytes escritos
CF = 1 si hubo error
AX = Código de error
El uso de esta función para desplegar información en pantalla se realiza dándole al registro BX el valor de 1 que es el valor pre-asignado al video por el sistema operativo MX-DOS.
Función 01H:
Uso: Leer un carácter del teclado y desplegarlo.
Registros de llamada:
AH=01H
Registros de Retorno:
AL = carácter leído
Con esta función es muy sencillo leer un carácter del teclado, el código hexadecimal del carácter leído se guarda en el registro AL. En caso de que sea un carácter extendido el registro AL contendrá el valor de 0 y será necesario llamar de nuevo a la función para obtener el código de este carácter.
Función 0AH
Uso: leer caracteres del teclado y almacenarlos en buffer
Registros de llamada:
AH = 0AH
DS: DX = Dirección del área de almacenamiento
BYTE 0 = Cantidad de bytes en el área
BYTE 1 = Cantidad de bytes leídos
desde BYTE 2 hasta BYTE 0 + 2 = caracteres leídos
Registros de Retorno: Ninguno
Los caracteres son leídos y almacenados en un espacio predefinido de memoria. La estructura de este espacio le indica que en el primer byte del mismo se indican cuantos caracteres serán leídos. En el segundo byte se almacena el número de caracteres que ya se leyeron, y del tercer byte en adelante se escriben los caracteres leídos.
Cuando se han almacenado todos los caracteres indicados menos uno la bocina suena y cualquier carácter adicional es ignorado. Para terminar la captura de la cadena es necesario darle [ENTER].
Función 3FH
Uso: Leer información de un dispositivo o archivo.
Registros de llamada:
AH = 3FH
BX = Número asignado al dispositivo
CX = Número de bytes a procesar
DS: DX = Dirección del área de almacenamiento
Registros de retorno:
CF = 0 si no hay error y AX = número de bytes leídos.
CF = 1 si hay error y AX contendrá el código del error.
Función 0FH:
Uso: abrir archivo FCB
Registros de llamada:
AH = 0FH
DS:DX = Apuntador a un FCB
Registros de retorno:
AL = 00H si no hubo problema, de lo contrario regresa 0FFH
Función 14H:
Uso:
Leer
...