Prog ensamblador

Solo disponible en BuenasTareas
  • Páginas : 5 (1132 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de febrero de 2012
Leer documento completo
Vista previa del texto
Métodos de trabajo con archivos
Existen dos formas de trabajar con archivos, la primera es por medio de bloques de control de archivos o "FCB" y la segunda es por medio de canales de comunicación, tambien conocidos como "handles".
La primera forma de manejo de archivos se viene utilizando desde el sistema operativo CPM, antecesor del DOS, por lo mismo asegura cierta compatibilidad con archivosmuy antiguos tanto del CMP como de la versión 1.0 del DOS, además este método nos permite tener un número ilimitado de archivos abiertos al mismo tiempo. Si se quiere crear un volumen para el disco la única forma de lograrlo es utilizando este método.
Aún considerando las ventajas del FCB el uso de los canales de comunicación es mucho más sencillo y nos permite un mejor manejo de errores, además,por ser más novedoso es muy probable que los archivos así creados se mantengan compatibles a través de versiones posteriores del sistema operativo.
Para una mayor facilidad en las explicaciones posteriores me referiré a el método de bloques de control de archivos como FCBs y al método de canales de comunicación como handles.

Introducción
Existen dos tipos de FCB, el normal, cuya longitud esde 37 bytes y el extendido de 44 bytes. En este tutorial unicamente se tratará el primer tipo, así que de ahora en adelante cuando me refiera a un FCB realmente estoy hablando de un FCB de 37 bytes.
El FCB se compone de información dada por el programador y por información que toma directamente del sistema operativo. Cuando se utilizan este tipo de archivos unicamente es posible trabajar en eldirectorio actual ya que los FCB no proveen apoyo para el uso de la organización por directorios del DOS.
El FCB está formado por los siguientes campos:

POSICION LONGITUD SIGNIFICADO
00H 1 Byte Drive
01H 8 Bytes Nombre del archivo
09H 3 Bytes Extensión
0CH 2 Bytes Número de bloque
0EH 2 Bytes Tamaño del registro
10H 4 Bytes Tamaño del archivo
14H 2 Bytes Fecha de creación16H 2 Bytes Hora de creación
18H 8 Bytes Reservados
20H 1 Byte Registro actual
21H 4 Bytes Regsitro aleatorio
Para seleccionar el drive de trabajo se sigue el siguiente formato: drive A = 1; drive B = 2; etc. Si se utiliza 0 se tomará como opción el drive que se esté utilizando en ese momento.
El nombre del archivo debe estar justificado a la izquierda y en caso de ser necesario se deberánrellenar los bytes sobrantes con espacios, la extensión del archivo se coloca de la misma forma.
El bloque actual y el registro actual le dicen a la computadora que registro será accesado en operaciones de lectura o escritura. Un bloque es un grupo de 128 registros. El primer bloque del archivo es el bloque 0. El primer registro es el registro 0, por lo tanto el último registro del primer bloquesería 127, ya que la numeración inició con 0 y el bloque puede contener 128 registros en total.

ABRIR ARCHIVOS
Para abrir un archivo FCB se utiliza la interrupción 21H, función 0FH. La unidad, el nombre y extensión del archivo deben ser inicializados antes de abrirlo.
El registro DX debe apuntar al bloque. Si al llamar a la interrupción ésta regresa valor de FFH en el registro AH es que elarchivo no se encontró, si todo salió bien se devolvera un valor de 0.
Si se abre el archivo DOS inicializa el bloque actual a 0, el tamaño del registro a 128 bytes y el tamaño del mismo y su fecha se llenan con los datos encontrados en el directorio.
CREAR UN ARCHIVO NUEVO
Para la creación de archivos se utiliza la interrupción 21H función 16H .
DX debe apuntar a una estructura de control cuyosrequisitos son que al menos se encuentre definida la unidad lógica, el nombre y la extensión del archivo.
En caso de existir algun problema se devolverá el valor FFH en AL, de lo contrario este registro contendrá el valor de 0.

ESCRITURA SECUENCIAL
Antes de que podamos realizar escrituras al disco es necesario definir el área de transferencia de datos utilizando para tal fin la función 1AH...
tracking img