Operaciones Basicas Sobre Archivos en Disco

14
OPERACIONES BÁSICAS SOBRE ARCHIVOS EN DISCO

description

Ensamblador

Transcript of Operaciones Basicas Sobre Archivos en Disco

Presentacin de PowerPoint

OPERACIONES BSICAS SOBRE ARCHIVOS EN DISCOINSTITUTO TECNOLOGICO DE CERRO AZUL

CATEDRTICO:LIC. MARA ALEJANDRA ROSAS TORO

MATERIA:LENGUAJE ENSAMBLADOR

PRESENTA:ITURBIDE FRANCISCO ROSALVAMNDEZ GALLEGOS TANIA YADIRA REYES GARCA ESPERANZA

CERRO AZUL, VER., A MAYO DEL 2015

INTRODUCCINLos servicios originales del DOS para procesamiento de archivos en disco usaban un mtodo llamado bloques de control de archivo (FCB).

Algunas de estas operaciones implican el uso de una cadena ASCIIZ para identificar inicialmente una unidad, una ruta y un nombre de archivo; un manejador de archivo para acceso subsecuente del archivo; y un cdigo de regreso especial para identificar errores. Operaciones que usan manejadores de archivo

3CH Crea archivo3DH Abre archivo3EH Cierra archivo3FH Lee registro40H Escribe registro42H Mueve apuntador de archivo

Otros servicios del DOS

INT 25H Lectura absolutaINT 26H Escritura absolutaOperaciones de usan FCB

0FH Abre archivo10H Cierra archivo14H Lee registro15H Escribe registro16H Crea archivo21H Lectura directa de registro

22H Escritura directa de registro

27H Lectura directa de bloque28H Escritura directa de bloque Cadena ASCIIZ

Cuando emplee muchos de los servicios ampliados para procesamiento de disco, primero indique al DOS la direccin de una cadena ASCIIZ que contenga la ubicacin del archivo: unidad de disco, ruta al directorio y nombre de archivo, seguidos por un byte de ceros hexadecimales; de ah el nombre de cadena ASCIIZ. La longitud mxima de la cadena es de 128 bytes.

El cdigo siguiente define una unidad y un nombre de archivo:PATHNM1 DB D:/TEST.ASM, 00H

Este cdigo define una unidad, subdirectorio y nombre de archivo:PATHNM1 DB D:/UTILITY/UN.EXE, 00H

La diagonal inversa tambin puede ser diagonal derecha, acta como un separador de ruta. Para interrupciones que necesiten de una cadena ASCIIZ, cargue su direccin de desplazamiento en el registro DX por ejemplo: como

LEA DX, PATHNMAMEManejadores de archivoMuchos de los servicios del DOS tambin implican el uso de un manejador de archivo para operaciones que accesan archivos, y uno debe solicitar un nmero de manejador de archivo desde el DOS. Un archivo en disco primero debe ser abierto; a diferencia de la transferencia de informacin desde el teclado o a la pantalla , el DOS tiene que direccionar los archivos en disco por medio de su directorio y entradas de la FAT y debe actualizar estas entradas, durante la ejecucin del programa, cada archivo referenciado debe ser asignado a su propio y nico manejador de archivos.

El DOS enva un manejador de archivo cuando uno abre un archivo para entrada o crea un archivo para salida. Las operaciones implican el uso de una cadena ASCIIZ y la funcin 3CH O 3DH del DOS. El manejador de archivo es un nmero nico de una palabra regresado en el AX que usted guarda en un elemento del rea de datos y que utiliza para todas las peticiones subsecuentes de acceso al archivo.

Uso de manejadores de archivo para crear archivos en disco

El procedimiento para escribir en un archivo es el siguiente:Utilice una cadena ASCIIZ para obtener manejador de archivo del DOS.Utilice la funcin 3CH del DOS para crear el archivo.Utilice la funcin 40H del DOS para escribir registros en el archivo.Al final, utilice la funcin 3EH del DOS para cerrar el archivo.

INT 21H, funcin 3CH: Crea archivo

Para crear un archivo nuevo o sobrescribir en uno ya creado con el mismo nombre, use primero la funcin 3CH del DOS. Cargue el CX con el atributo de archivo requerido y el DX con la direccin de la cadena ASCIIZ (Donde el DOS enva archivo nuevo).

//Ejemplo: crea un archivo normal en la unidad D con atributo 0:

PATHNM1 DB D:\ACCOUNTS.FIL,00HHANDLE1 DW ? MOV AH, 3CH ;peticin para crear archivoMOV CX, 00 ;Atributo normalINT 21H ;Cadena ASCIIZJC error ;Si hay error, saleMOV HANDLE1, AX ;Guarda el manejador en una palabraINT 21H, funcin 40H: Escribe registro

Para escribir registro en disco, utilice la funcin 40H del DOS. Cargue el BX con el manejador de archivo almacenado, el CX con el nmero de bytes a escribir y el DX con la direccin del rea de salida. Ejemplo siguiente utiliza el manejador de archivo de operacin de creacin precedente para escribir un registro de 256 bytes desde OUTRECT:

Handle1 DW ?OUTREC DB 256 DUP( ) ;rea de salida MOV AH, 40H ;Peticin para escribir registro MOV BX, HANDLE1 ;Manejador de archivoMOV CX, 256 ;Longitud de registroLEA DX, OUTREC ;Direccin del rea de salidaINT 21H ;Llama al DOSJC error2 ;Prueba por errorCMP AX, 256 ;Se han escritos todos los bytes?JNE error3INT 21H, funcin 3EH: Cierra archivo

Cuando ha terminado de escribir en un archivo, tiene que cerrarlo. Cargue el manejador de archivo en el BX y utilice la funcin 3EH del DOS:

MOV AH, 3EH ;Peticin para cerrarMOV BX, HANDLE1 ;Manejador de archivoINT 21H ;Llama al DOS

Una operacin correcta de cierre escribe cualquier registro restante en el bfer de la memoria y actualiza la FAT y el directorio con la fecha y tamao del archivo. Una operacin no exitosa pone en uno la bandera de acarreo y regresa el nico cdigo de error posible en el AX, 06 (manejador no vlido). Uso de manejadores de archivo para leer archivos en disco

Los requisitos para abrir y leer archivos en disco por medio de manejadores de archivo: El procedimiento para leer un archivo es el siguiente:

Utilice una cadena ASCIIZ para obtener una manejador de archivos del DOS.Utilice la funcin 3DH del DOS para abrir archivoUtilice La funcin 3FH del DOS para leer registros en el archivoAl final, utilice la funcin 3EH del DOS para cerrar el archivo.

INT 21H, funcin 3DH: Abre archivo

Si su programa es leer un archivo, primero utilice la funcin 3DH del DOS para abrirlo. Esta operacin verifica que el archivo realmente exista. Cargue el DX con la direccin de la cadena ASCIIZ necesaria y establezca el AL con el cdigo de acceso:

BITS PETICIN0-2 000=slo lectura 001=slo escritura 010=lectura/escritura Reservada4-6 Modo compartido Bandera heredada

Al escribir en un archivo, asegrese de utilizar la funcin 3CH para crear el archivo, no la funcin 3DH para abrirlo. El ejemplo siguiente abre un archivo para lectura:

MOV AH, 3DH ;peticin para abrir archivoMOV AL,00 ; Slo lecturaLEA DX, PATHNM1 ;cadena ACIIZINT 21H ;llama al DOSJC error4 ;si hay error saleMOV HANDLE2, AX ;guarda el manejador en una palabra.REFERENCIAS BIBLIOGRAFICAS

PETER ABEL, LENGUAJE ENSAMBLADOR Y PROGRAMACION PARA PC, 593 PAG.