Курсовая работа: Розробити програму-аналог програми Doc Undelete

CMP DX,START_CLUSTER

JE FILL; Если свободный, переход на заполнение FAT

MOV AH,13H; Нет, файл перезаписуется

MOV DX,FCB_LOC; Удаляется сохраненная запись директории

INT 21H;

MOV AH,9; Выход с ошибкой

LEA DX,WRITTEN_OVER_MSG

INT 21H

JMP OUT1; переход на выход

FILL: MOV AX,DX; Установить старое свободное пространство в FAT на первый найденный

MOV DX,0FFFH; Указать, что это последний кластер (FFFH=End of file)

CMP CX,1; Если последняя запись? (CX=количество кластеров)

JZ LAST; Да, не надо шукать следующую свободную запись

CALL GET_NEXT_ZERO; Вызов с AX=старый 0 кластер. Возвращает DX=новый 0 кластер

LAST: CALL PUT_FAT_ENTRY; Вызов с AX=старый 0 кластер. Возвращает DX=новый 0 кластер в FAT

LOOP FILL; Обработать следующий кластер

MOV DX,1; Запись измененной 1 копии FAT

OR I_O_FLAG,1; Выбор записи кластера

CALL CLUSTER_I_O; Запись кластера

MOV DX,3; Запись измененной 1 копии FAT

CALL CLUSTER_I_O; Запись кластера

OUT1: INT 20H; Выход

UNDEL ENDP

CLUSTER_I_O PROC NEAR; Чтение кластера

; Вход: DX-начальный сектор

PUSH AX; Сохранить испо?

К-во Просмотров: 262
Бесплатно скачать Курсовая работа: Розробити програму-аналог програми Doc Undelete