Ensamblador - Leer la FAT de un diskette

 
Vista:

Leer la FAT de un diskette

Publicado por Felipe (1 intervención) el 16/07/2004 23:21:18
como puedo leer la FAT de un diskete?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Leer la FAT de un diskette

Publicado por ge-ergon (18 intervenciones) el 25/07/2004 07:48:57
Hola!

Para leer la fat de un floppy ( 1.44mb fat12)
en la linea de comando ejecuta esto:
c:\> debug
- L 0100 0 1 9
- n fat12.img
- rcx
1200
-w
-q
Con esto obtienes la fat del floppy en el archivo fat12.img.
Recuerde que la fat del floppy (1.44mb) empieza a partir del sector
lógico 1 y termina en el 9. Luego existe la copia de la fat que esta en el intervalo: sector 10 hasta el 18. Luego a partir del sector 19 hasta 14 sectores mas se encuentra el espacio de directorio raiz, con capacidad de 224 entradas. En el sector 33 (21h) espieza los sectores dedicados a los datos. El sector cero es de "booteo".

Explicación de los comandos
El comando "L" significa cargar datos. El primer parámetro (0100) indica que a partir de esa dirección de memoria se va a cargar los datos, el segundo parámetro indica la unidad (0=A,1 = B, 2 = C, etc),
el tercer parámetro indica el primer sector, y el cuarto parámetro indica el numero de sectores que se cargaran a partir del sector especificado por el tercer parámetro.
El comando "n" permite poner nombre al archivo.
El comando rcx coloca el tamaño del archivo, en este caso:
(9 sectores) * (512) = 1200h = 4608
El comando "w" escribe el archivo, y por ultimo se sale del debug con el commando "q".

El debug tiene el comando "L" que seguramente usa las iterrupciones
que brinda DOS llamadas DISK ABSOLUTE READ/WRITE. (int 25/int 26)

USO:
<En discos menores de 32MB>
AL Unidad
CX Numero de sectores a leer
DX Sector de inicio (DOS logical sector number)
DS:BX Direccion de memoria del
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Leer la FAT de un diskette

Publicado por ge-ergon (18 intervenciones) el 25/07/2004 07:51:13
USO de int 25:
<En discos menores de 32MB>
AL Unidad
CX Numero de sectores a leer
DX Sector de inicio (DOS logical sector number)
DS:BX Direccion de memoria del buffer (destination or source buffer)

*PRUEBA*
Salida Obtenida:

-------------------------------
Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1999.

C:\WINDOWS\Escritorio>debug
-a
166C:0100 mov al,0
166C:0102 mov cx,1
166C:0105 mov dx,0
166C:0108 mov bx, 200
166C:010B int 25
166C:010D int 20
166C:010F
-g

El programa ha finalizado con normalidad
---------------------------------------

Ahora ejecuta "d 200" y veras la información contenida en el sector de booteo.

Para mas información del uso del debug:
www.armory.com/~rstevew/Public/Tutor/Debug/

Tambien puedes usar la interrupcion 13h del BIOS para leer Discos.
La documentación de la interrupción esta aqui:
www.ctyme.com/intr/int-13.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar