Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Пример выполнения работы Создать новую директорию new_dir на диске а:, сделать ее текущей, записать туда файл newfile.Txt и в него записать сообщение - "Это вновь создан­ный файл".

date segment

path_l db "new_dir",0

path_2 db 'newfile.txt',0

hendle dw 0

mes db 'Это вновь созданный файл', 10,13

date ends

code segment

assume cs:code,ds:date

start: mov ax, date

mov ds,ax

mov dl,0 ; текущий диск - A:

mov ah,OEh ; загрузка функции ОЕ

int 21h ; смена текущего диска

mov dx, offset path_l ; загрузка маршрута нового каталога

mov ah,39h ; загрузка 39-й функции

int 21h ; создание нового каталога

jc m1 ; переход, если есть ошибка

mov dx,offset path_l ; маршрут нового каталога

mov ah,3bh ; загрузка функции 3b

int 21h ; смена каталога

jc ml ; переход, если нет ошибки

mov dx, off set path_2 ; загрузка маршрута нового каталога

mov сх,0 ; установка атрибута чте­ние/запись

mov ah,3Ch ; загрузка функции ЗС

int 21h ; создание файла

jc ml ; переход, если есть ошибка

mov hendle,ах ; сохранить хендл

mov bx,hendle ; установить хендл

mov сх,26 ; количество символов для записи

mov dx,offset mes ; начало записывае­мого текста

mov ah,40h ; загрузка 40-й функции

int 21h ; записать в файл сообщение

jc ml ; переход, если есть ошибка

сmр ах,2б

jz m3

mov ах,13 ;код ошибки при неправильной передаче

jmp ml ; переход при несовпадении

mЗ: mov bx,hendle ; загрузить хендл

mov ah,3Eh ; загрузка функции ЗЕ

int 21h ; закрыть хендл

jc ml ; переход, если есть ошибка

jmp m2

m1: call er_disk ; переход на конец

m2: mov ax,4c00h ; выход

int 21h

er_disk proc near ; выдача сообщений об ошибках

push ds ; сохранить сегмент данных

mov cx,cs ; изменить

mov ds,cx ; сегмент данных

сmр ах,2 ; ошибка 2 ?

jnz @3 ; нет, продолжить анализ

mov dx,offset message2 ; загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@3: сmр ах,3 ; ошибка 2 ?

jnz @4 ; нет, продолжить анализ

mov dx,off set message3 ; загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@4: сmр ах,4 ; ошибка 4 ?

jnz @5 ; нет, продолжить анализ

mov dx, offset message4 ; загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@5: сmр ах,5 ; ошибка 5 ?

jnz @6 ; нет, продолжить анализ

mov dx,offset message5 ; загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@6: сmр ах,б ; ошибка 6 ?

jnz @12 ; нет, продолжить анализ

mov dx,offset message6 ; загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@12: сmр ах,12 ; ошибка 12 ?

jnz @13 ; нет, продолжить анализ

mov dx,offset messagel2 ;загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@13: сmр ах,13 ; ошибка 12 ?

jnz @14 ; нет, продолжить анализ

mov dx,offset messagel3; загрузка буфера сообщения

jmp @15 ; переход на вывод сообщения

@14: mov dx,offset messagel4; ошибка не распознана

@15: mov ah,9 ; загрузка 9-й функции

int 21h ; вывод сообщения об ошибке

mov dx,offset wait_

mov ah,9 ; загрузка 9-й функции

int 21h ; вывод сообщения

mov ah,8 ; загрузка 8-й функции

int 21h ; ожидание pop ds

ret ; выход из процедуры

message2 db 10,13,'Файл не найден',10,13,'$'

message3 db 'Маршрут не найден',10,13,'$'

message4 db 'Слишком много открытых фалов',10,13,'$'

message5 db 10,13,'Нет доступа',10.13,'$'

message6 db 'Несуществующий хендл',10,13,'$'

message12 db 'He разрешен доступ',10,13,'$'

message13 db 'Неверная передача данных в файл',10,13,'$'

message14 db 'Неопределенная ошибка',10,13,'$'

wait_ db 'Нажмите любую клавишу',10,13,'$'

er_disk endp

code ends

end start

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]