ВУЗ:
Составители:
110
st43: test byte ptr [di],0ffh ; Конец имени каталога ?
jz st5 ; Нашли !
inc di ; Переход к следующему имени кат.
mov point,di
call read_cat ; Чт.найденного кат. в buf3
jmp st40
st5: call read_cat ; Чт.найденного кат. в buf3
; Поиск защищаемого файла
mov byte ptr f_flag,1 ; Ищется файл
lea ax,fil_name ; Защищаемый файл
mov point,ax
mov cx,64 ; Кол. анализируемых записей
lea si,buf3 ; Начало 1 записи каталога
st51: cmp byte ptr [si],0 ; Пустая запись ?
jz st52 ; Пропуск
cmp byte ptr [si],0e5h ; Стертая запись ?
jz st52 ; Пропуск
call comp ; Сравнение с искомым
cmp flag,1 ; Hайден ?
jz st53 ; Найден
st52: add si,32 ; Переход к следующей записи
loop st51
; Ошибка чтения
lea dx,err_read
mov al,6
call msg
int 20h
st53: mov ax,[si].b_clu
; В АХ начальный кластер этого файла
; Проверка флага инициализации
test f_key,0ffh ; Проверка флага инициализации
jz st54 ; Переход, если инициализации не было
jmp nstart ; Переход на основную программу
; Инициализация
st54: mov key,ax ; Запись начального кластера
mov f_key,1 ; Установка флага инициализации
; Открытие файла
mov ax,3d01h ; Открытие файла для записи
lea dx,fil_name ; Имя файла
int 21h
jnc nst1
; Ошибка чтения
lea dx,err_read
mov al,7
call msg
int 20h
nst1: mov handler,ax
; Установка указателя файла на 3
mov ax,4200h ; Абс. установка от начала
mov bx,handler ; Дескриптор файла
110
st43: test byte ptr [di],0ffh ; Конец имени каталога ?
jz st5 ; Нашли !
inc di ; Переход к следующему имени кат.
mov point,di
call read_cat ; Чт.найденного кат. в buf3
jmp st40
st5: call read_cat ; Чт.найденного кат. в buf3
; Поиск защищаемого файла
mov byte ptr f_flag,1 ; Ищется файл
lea ax,fil_name ; Защищаемый файл
mov point,ax
mov cx,64 ; Кол. анализируемых записей
lea si,buf3 ; Начало 1 записи каталога
st51: cmp byte ptr [si],0 ; Пустая запись ?
jz st52 ; Пропуск
cmp byte ptr [si],0e5h ; Стертая запись ?
jz st52 ; Пропуск
call comp ; Сравнение с искомым
cmp flag,1 ; Hайден ?
jz st53 ; Найден
st52: add si,32 ; Переход к следующей записи
loop st51
; Ошибка чтения
lea dx,err_read
mov al,6
call msg
int 20h
st53: mov ax,[si].b_clu
; В АХ начальный кластер этого файла
; Проверка флага инициализации
test f_key,0ffh ; Проверка флага инициализации
jz st54 ; Переход, если инициализации не было
jmp nstart ; Переход на основную программу
; Инициализация
st54: mov key,ax ; Запись начального кластера
mov f_key,1 ; Установка флага инициализации
; Открытие файла
mov ax,3d01h ; Открытие файла для записи
lea dx,fil_name ; Имя файла
int 21h
jnc nst1
; Ошибка чтения
lea dx,err_read
mov al,7
call msg
int 20h
nst1: mov handler,ax
; Установка указателя файла на 3
mov ax,4200h ; Абс. установка от начала
mov bx,handler ; Дескриптор файла
Страницы
- « первая
- ‹ предыдущая
- …
- 108
- 109
- 110
- 111
- 112
- …
- следующая ›
- последняя »
