Ensamblador - Ayuda FS Sistema Operativo

 
Vista:

Ayuda FS Sistema Operativo

Publicado por xavi (2 intervenciones) el 25/04/2007 17:17:48
Hola, estoy desarrollando una funcion para que busque un archivo en un diskette con un sistema de archivos que hice...

Descripcion

En mi FS , el primer sector contiene una tabla con los nombres de los archivos
Ejemplo:
"arch1 arch2 arch3 "
cada nombre de archivo tiene 8 caracteres: "arch1 ", "arch2 ", "arch3 "

ahora, esto es lo q quiero:

uso un macro llamado fn2chs y me busca el nombre...

codigo:

macro fn2chs a
{
local b, c, d, e, f, g, h
;CARGO EL SECTOR 1 EN VARIABLE C
mov ah, 2
mov al, 1
mov ch, 0
mov cl, 1
mov dh, 0
mov dl, 0
mov bx, ds
mov es, bx
mov bx, c
int 19
;PREPARO LOS REGISTROS PARA UTILIZAR "REPE CMPSB"
mov cx, 8
mov di, c
mov si, d
b:
;COMPARO, SI ES IGUAL VA A E
repe cmpsb
je e
;ME FIJO SI LLEGUE AL FIN DEL ARCHIVO, SI LO ES VA A F
cmp si, 512
je f
;AGREGO 8 A SI Y VUELVO A B PARA QUE COMPARE A PARTIR DE LA POSICION SI+8, OCHO CARACTERES
add si, 8
jmp b
c:
;BUFFER SECTOR 1
times 512 db ' '
d:
;NOMBRE DE ARCHIVO A BUSCAR
db a
e:
writeln 'Found'
jmp h
f:
writeln 'No more space'
jmp h
g:
writeln 'Not found'
h:
;FIN!!!!!
}
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