Системное программное обеспечение. Рощин А.В. - 113 стр.

UptoLike

Составители: 

113
inc bp ; Адрес в тек. записи каталога
loop comp2
; Имя каталога совпало (имя 11 симв.)
mov flag,1 ; Взведение флага поиска
pop cx
ret ; Выход при успешном поиске
comp endp
; Печать каталога
pri_cat proc near
mov cx,64 ; Кол. выводимых записей
lea si,buf3 ; Начало 1 записи каталога
pri_cat1: cmp byte ptr [si],0 ; Пустая запись ?
jz pri_cat2 ; Пропуск
cmp byte ptr [si],0e5h ; Стертая запись ?
jz pri_cat2 ; Пропустить печать
call c_file ; Печать строки
pri_cat2: add si,32 ; Переход к следующей записи
loop pri_cat1
ret
pri_cat endp
c_file proc near
call wk
pusha
; Печать имени файла
push si
mov cx,11
c_fil1: mov al,[si]
call print
inc si
loop c_fil1
call sp4
; Печать начального кластера
pop si
mov ax,[si].b_clu
call prax
call sp4
; Печать размера файла
mov ax,word ptr [si+2].f_size
call prax
mov ax,word ptr [si].f_size
call prax
popa
ret
c_file endp
; Вывод строки
msg proc near
push ax
mov ah,9
int 21h
pop ax
                                       113



        inc   bp           ; Адрес в тек. записи каталога
        loop comp2
; Имя каталога совпало (имя 11 симв.)
        mov flag,1         ; Взведение флага поиска
        pop cx
        ret                ; Выход при успешном поиске
comp endp
; Печать каталога
pri_cat proc near
        mov cx,64          ; Кол. выводимых записей
        lea   si,buf3      ; Начало 1 записи каталога
pri_cat1: cmp byte ptr [si],0     ; Пустая запись ?
        jz    pri_cat2            ; Пропуск
        cmp byte ptr [si],0e5h ; Стертая запись ?
        jz    pri_cat2            ; Пропустить печать
        call c_file               ; Печать строки
pri_cat2: add si,32        ; Переход к следующей записи
        loop pri_cat1
        ret
pri_cat endp
c_file proc near
        call wk
        pusha
; Печать имени файла
        push si
        mov cx,11
c_fil1: mov al,[si]
        call print
        inc   si
        loop c_fil1
        call sp4
; Печать начального кластера
        pop si
        mov ax,[si].b_clu
        call prax
        call sp4
; Печать размера файла
        mov ax,word ptr [si+2].f_size
        call prax
        mov ax,word ptr [si].f_size
        call prax
        popa
        ret
c_file endp
; Вывод строки
msg proc near
        push ax
        mov ah,9
        int   21h
        pop ax