Interrupciones-assembler
Enviado por dani0616 • 2 de Junio de 2012 • 1.919 Palabras (8 Páginas) • 543 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 secuencialmente un archivo FCB.
Registros de llamada:
AH = 14H
DS:DX = Apuntador a un FCB ya abierto.
Registros de retorno:
AL = 0 si no hubo errores, de lo contrario se regresara el código correspondiente de error: 1 error al final del archivo, 2 error en la estructura del FCB y 3 error de la lectura parcial.
Esta función lo que hace es que lee el siguiente bloque de información a partir de la dirección dada por DS: DX, y actualiza este registro.
Función 15H:
Escribir secuencialmente a un archivo FCB
Registros de llamada:
AH = 15H
DS:DX = Apuntador a un FCB ya abierto
Registros de retorno:
AL = 00H si no hubo errores, de lo contrario contendrá el código del error: 1disco lleno o archivo de solo lectura, 2 error en la formación o especificación del FCB. La función 15H después de escribir el registro al bloque actual actualiza el FCB
Función 16H:
Uso: crear un archivo FCB
Registros de llamada:
AH = 16H
DS: DX = apuntador a un FCB ya abierto.
Registros de Retorno:
AL = 00H si no hubo errores, de lo contrario contendrá el valor 0FFH
Se basa en la información proveida en un FCB para crear un archivo en el disco.
Función 21H:
Leer de forma aleatoria un archivo FCB
Registros de llamada:
AH = 21H
DS: DX = Apuntador a un FCB ya abierto.
Registros de retorno:
A = 00H si no hubo error, de lo contrario AH contendrá el código del error: 1
Si es fin de archivo, 2 si existe error de especificación de FCB y 3 si se leyó un registro parcial o el apuntador del archivo se encuentra al final del mismo. Esta función lee el registro especificado por los campos
...