Ensamblador

Solo disponible en BuenasTareas
  • Páginas : 14 (3431 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de diciembre de 2010
Leer documento completo
Vista previa del texto
4.3 Bloques en ensamblador.

Introducción.
Existen dos tipos de FCB, el normal, cuya longitud es de 37 bytes y el extendido de 44 bytes. Hablaremos solo del primer tipo, así que de ahora en adelante cuando digamos un FCB realmente estamos 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 únicamente es posible trabajar en el directorio actual ya que los FCB no proveen apoyo para el uso de la organización por directorios del DOS.
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 debeestar justificado a la izquierda y en caso de ser necesario se deberán rellenar 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 primerregistro es el registro 0, por lo tanto el último registro del primer bloque sería 127, ya que la numeración inicia con 0 y el bloque puede contener 128 registros en total.
(1) http://usuarios.multimania.es/patricio/ensam/ensam7.htm
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 decanales de comunicación, también 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 archivos muy 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 crearun 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 mayorfacilidad en las explicaciones posteriores me referiré al método de bloques de control de archivos como FCBs y al método de canales de comunicación como handles.
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 lainterrupción ésta regresa valor de FFH en el registro AH es que el archivo no se encontró, si todo salió bien se devolverá 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 21Hfunción 16H .
DX debe apuntar a una estructura de control cuyos requisitos son que al menos se encuentre definida la unidad lógica, el nombre y la extensión del archivo.
En caso de existir algún 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 áreade transferencia de datos utilizando para tal fin la función 1AH de la interrupción 21H.
La función 1AH no regresa ningún estado del disco ni de la operación, pero la función 15H, que es la que usaremos para escribir al disco, si lo hace en el registro AL, si éste es igual a cero no hubo error y se actualizan los campos del registro actual y bloque.
Lectura secuencial.
Antes que nada...
tracking img