ВУЗ:
Составители:
111
xor cx,cx ; Старшая часть смещения
mov dx,3 ; Младшая часть смещения
int 21h
; Запись в файл
mov ah,40h ; Запись
mov bx,handler ; Дескриптор файла
mov cx,3 ; Количество записываемых байтов
lea dx,key ; Смещение записываемых байтов
int 21h
jnc nst2
; Ошибка чтения
lea dx,err_read
mov al,8
call msg
int 20h
nst2: ; Сообщение основной программы
lea dx,ok
mov al,0
call msg
call kbin ; Ожидание
int 20h
nstart: cmp ax,key ; Сравн. истинного и зап. номеров
jz nst2 ; Все в порядке
; Сообщение основной программы
lea dx,nok
mov al,0
call msg
call kbin ; Ожидание
int 20h
; Чтение подкаталога в buf3
; Вход: SI = начало записи этого подкаталога в вышестоящем каталоге
read_cat proc near
mov bp,clu0
; BP = лог.номер сект.первого доступного кластера
lea bx,buf2 ; BR
mov cl,[bx+11].clus_siz ; Секторов в кластере
xor ch,ch
mov ax,[si].b_clu ; Нач. кластер найд. кат.
sub ax,2 ; Кластеры начинаются с 2
mul cx ; DX:AX нач.сект.найд.кат.отн.конца корн.
add ax,bp
adc dx,0 ; DX:AX лог.нач.сект.найд.кат.
lea bx,b_param ; Блок параметров
mov word ptr [bx].sec_num,ax ; Отн. номер сект.
mov word ptr [bx+2].sec_num,dx ; Отн. номер сект.
mov al,2 ; Диск С
mov cx,-1 ; Признак > 32 M
mov di,num_sec
mov [bx].number_s,di ; Кол-во читаемых секторов
mov [bx].b_off,offset buf3
111
xor cx,cx ; Старшая часть смещения
mov dx,3 ; Младшая часть смещения
int 21h
; Запись в файл
mov ah,40h ; Запись
mov bx,handler ; Дескриптор файла
mov cx,3 ; Количество записываемых байтов
lea dx,key ; Смещение записываемых байтов
int 21h
jnc nst2
; Ошибка чтения
lea dx,err_read
mov al,8
call msg
int 20h
nst2: ; Сообщение основной программы
lea dx,ok
mov al,0
call msg
call kbin ; Ожидание
int 20h
nstart: cmp ax,key ; Сравн. истинного и зап. номеров
jz nst2 ; Все в порядке
; Сообщение основной программы
lea dx,nok
mov al,0
call msg
call kbin ; Ожидание
int 20h
; Чтение подкаталога в buf3
; Вход: SI = начало записи этого подкаталога в вышестоящем каталоге
read_cat proc near
mov bp,clu0
; BP = лог.номер сект.первого доступного кластера
lea bx,buf2 ; BR
mov cl,[bx+11].clus_siz ; Секторов в кластере
xor ch,ch
mov ax,[si].b_clu ; Нач. кластер найд. кат.
sub ax,2 ; Кластеры начинаются с 2
mul cx ; DX:AX нач.сект.найд.кат.отн.конца корн.
add ax,bp
adc dx,0 ; DX:AX лог.нач.сект.найд.кат.
lea bx,b_param ; Блок параметров
mov word ptr [bx].sec_num,ax ; Отн. номер сект.
mov word ptr [bx+2].sec_num,dx ; Отн. номер сект.
mov al,2 ; Диск С
mov cx,-1 ; Признак > 32 M
mov di,num_sec
mov [bx].number_s,di ; Кол-во читаемых секторов
mov [bx].b_off,offset buf3
Страницы
- « первая
- ‹ предыдущая
- …
- 109
- 110
- 111
- 112
- 113
- …
- следующая ›
- последняя »
