ВУЗ:
Составители:
108
db '$'
b_param db 10 dup(0) ; Блок параметров для int 25h
st1: mov ax,cs
mov ds,ax
; Определение начального кластера
lea ax,buf_cat ; Инициализация указателя на начало
mov point,ax ; буфера текущего каталога
; Получение текущего каталога в buf_cat
mov ah,47h ; Получение текущего каталога
xor dl,dl ; Текущий дисковод
lea si,buf_cat ; Буфер для ASCIIZ тек. каталога
int 21h ; Тек' каталог в buf_cat
jnc st2 ; Ошибки нет
; Ошибка чтения сектора
lea dx,err_read
mov al,1 ; Ошибка чтения 1
call msg
int 20h
st2: ; Чтение BR в buf2
mov al,2 ; Диск С
mov cx,-1 ; Признак > 32 M
lea bx,b_param ; Блок параметров
mov word ptr [bx].sec_num,0 ; Отн. номер сектора
mov word ptr [bx+2].sec_num,0 ; Отн. номер сектора
mov [bx].number_s,1 ; Кол-во читаемых секторов
mov [bx].b_off,offset buf2
mov dx,cs
mov [bx].b_seg,dx
int 25h ; BR в buf2
pop cx
jnc st3 ; Ошибки нет
; Ошибка чтения сектора
lea dx,err_read
mov al,2 ; Второе чтение сектора
call msg
int 20h
; Чтение корневого каталога в buf3
st3: lea si,[buf2+11]
; Определение количества читаемых секторов каталога
; (один кластер, но не более 4)
mov al,[si].clus_siz ; Размер кластера
cmp al,4 ; Разм. кластера < 4
jc st31
mov al,4
st31: xor ah,ah
mov num_sec,ax ; Кол-во читаемых секторов кат.
; Определение числа секторов в корневом каталоге
mov ax,[si].root_siz ; Размер кат. (кол.файлов)
mov cl,4
shr ax,cl ; /16 (записей в секторе)
108
db '$'
b_param db 10 dup(0) ; Блок параметров для int 25h
st1: mov ax,cs
mov ds,ax
; Определение начального кластера
lea ax,buf_cat ; Инициализация указателя на начало
mov point,ax ; буфера текущего каталога
; Получение текущего каталога в buf_cat
mov ah,47h ; Получение текущего каталога
xor dl,dl ; Текущий дисковод
lea si,buf_cat ; Буфер для ASCIIZ тек. каталога
int 21h ; Тек' каталог в buf_cat
jnc st2 ; Ошибки нет
; Ошибка чтения сектора
lea dx,err_read
mov al,1 ; Ошибка чтения 1
call msg
int 20h
st2: ; Чтение BR в buf2
mov al,2 ; Диск С
mov cx,-1 ; Признак > 32 M
lea bx,b_param ; Блок параметров
mov word ptr [bx].sec_num,0 ; Отн. номер сектора
mov word ptr [bx+2].sec_num,0 ; Отн. номер сектора
mov [bx].number_s,1 ; Кол-во читаемых секторов
mov [bx].b_off,offset buf2
mov dx,cs
mov [bx].b_seg,dx
int 25h ; BR в buf2
pop cx
jnc st3 ; Ошибки нет
; Ошибка чтения сектора
lea dx,err_read
mov al,2 ; Второе чтение сектора
call msg
int 20h
; Чтение корневого каталога в buf3
st3: lea si,[buf2+11]
; Определение количества читаемых секторов каталога
; (один кластер, но не более 4)
mov al,[si].clus_siz ; Размер кластера
cmp al,4 ; Разм. кластера < 4
jc st31
mov al,4
st31: xor ah,ah
mov num_sec,ax ; Кол-во читаемых секторов кат.
; Определение числа секторов в корневом каталоге
mov ax,[si].root_siz ; Размер кат. (кол.файлов)
mov cl,4
shr ax,cl ; /16 (записей в секторе)
Страницы
- « первая
- ‹ предыдущая
- …
- 106
- 107
- 108
- 109
- 110
- …
- следующая ›
- последняя »
