Д. Правиков

Установка метки тома из программы

Листинг

;        Программа изменения метки тома гибкого диска
;
        .MODEL SMALL
        .STACK 100h
        .DATA
;---------------------------- Шаблон расширенного FCB для поиска метки тома --
xFCB        db        0FFh
        db        5 dup (0)
        db        08h
        db        1                ; 1 = 'A:'
        db        11 dup ('?')
        db        25 dup (?)
;---------------------------- Область передачи данных при дисковых операциях
buffer        db         64 dup (?)
;---------------------------- Новая метка тома ------------------------------
dlabel        db        'MYLABEL    '
        .CODE
Start:
        mov        ax,@data
        mov        ds,ax
;---------------------------- Переустановка DTA -----------------------------
        mov        dx,OFFSET buffer
        mov        ah,1Ah
        int        21h
;---------------------------- Поиск метки тома ------------------------------
        mov        dx,OFFSET xFCB
        mov        ah,11h
        int        21h
        cmp        al,0FFh
        je        no_label
;---------------------------- Поместить новую метку в буфер ----------------
        push        ds
        pop        es
        mov        si,OFFSET dlabel
        mov        di,OFFSET buffer
        add        di,18h                        ; Важная константа!
        mov        cx,11
        rep        movsb
;---------------------------- Изменение метки тома --------------------------
        mov        dx,OFFSET buffer
        mov        ah,17h
        int        21h
no_label:
;---------------------------- Выход из программы ----------------------------
        mov        ax,4C00h
        int        21h
        END        Start

