Автор работы: Пользователь скрыл имя, 14 Апреля 2010 в 19:22, Не определен
Введение..................................................................................................................3
I. Теоретическая часть............................................................................................5
1.1 Работа с каталогами диска.......................................................................5
1.2 Чтение/изменение корневого каталога..................................................8
1.3 Создание/удаление подкаталога............................................................11
1.4 Чтение/изменение подкаталога..............................................................12
II. Практическая часть ..........................................................................................15
Заключение.............................................................................................................17
Библиографический список использованной литературы……………….…18
Приложение А. Листинг программы...................................................................19
Приложение Б. Листинг программы....................................................................25
Приложение
А. Листинг программы
Title Catalog_Work
stk segment stack
dw 90 dup(?)
stk ends
Data segment
CURRENT_DIR DB 64 DUP(?),'$'
path_cur db 'e:\bp\bin',0,13,10,'$'
path db 'd:\catalog',0
path2 db'd:\catalog\*.
file1 db 'd:\catalog\file 1.txt',0
file2 db 'd:\catalog\file2.txt',0
file3 db 'd:\catalog\file3.txt',0
cat_crt db 'Catalog create> ','$'
wr_msg db 'Napishem informaciuy w catalog',13,10,'Sama informacia: ',13,10;$'
err1_msg db 'Catalog sushestwuiet ili newozmogno sozdat ',13,10,'$'
msgl db 'Pered udaleniem kataloga sotrite iz nego wsiu informaciu i posle nagmite enter', 13,10,'$'
msg_cat_setup db 'Ustanofka tekushego katologa',13,10,'$'
msg_cur_cat db 'Tekushii catalog> ','$'
razd db 13,10,'$'
dta db 256 dup(?)
Data ends
Code segment
assume cs:code, ds:data, ss:stk
begin:
mov ax,data
mov
ds,ax
mov ah,9h
lea dx,msg_cat_setup
int 21h
;---Делаем E:\BP\BIN текущем каталогом
MOV AH,3BH ;Номер функции
LEA DX,PATH_cur ;DS:DX должны указать на путь
INT 21Н ;устанавливаем текущий каталог
;---Получаем текущий каталог
MOV АН,47Н ;Номер функции
LEA SI,CURRENT_DIR ;Указываем на область данных
MOV DL,5 ;Указываем на диск Е:\
INT
21Н ;Помещаем строку по адресу DS:SI
mov ah,9h
lea dx,msg_cur_cat
int 21h
mov ah,9h
lea dx,current_dir
int 21h
;---Создаем новый подкаталог по адресу в PATH
LEA DX,path ;Указываем путь и имя подкаталога
MOV АН,39Н ;Сама функция
INT 21Н ;Создаем
JC
ERROR1 ;Если ошибка то переходим на ошибку
mov ah,9h
lea dx,cat_crt
int 21h
mov ah,9h
lea dx,razd
int 21h
mov ah,9h
lea dx,wr_msg
int 21h
call key
;---Создаем в созданном каталоге 3 файла с расширением .txt
mov ah,3ch
mov al,2
mov cx,0
lea dx,filel
int 21h
mov ah,3ch
mov al,2
mov cx,0
lea dx,file2
int 21h
mov ah,3ch
mov al,2
mov cx,0
lea dx,file3
int 21h
;-------------
jmp a
error 1:
mov ah,9h
lea dx,errl_msg
int 21h
jmp exit
a:
;---Устанавливаем DTA
LEA DX,DTA ;DS:DX указывает на DTA
MOV AH,1AH ;Функция установки DTA
INT 21H ;Устанавливаем DTA
;---Ищем первый файл
MOV AH,4EH ;Сама функция
LEA DX,path2 ;Указываем на строку пути
MOV СХ,0 ;Только нормальные атрибуты
INT 21Н ;Ищем *.*
JC ERROR_rout ;Ошибки обрабатываем
;---Выводим имя файла
NEXT_LINE: LEA BX,DTA ;ВХ указывает на DTA
ADD ВХ,30 ;Смещение для имени файла
NEXT_CHAR: MOV DL,[BX] ;Получаем символ из имени
CMP DL,0 ;Проверка на конец строки
JE END_STR ;Уходим, если конец строке
MOV АН,2 ;Иначе выводим символ
INT 21Н ;
INC ВХ ;Увеличиваем указатель
JMP SHORT NEXT_CHAR ;следующий символ
;---возврат каретки\перевод строки в конце строки
END_STR: MOV АН,2 ;Функция вывода символа
MOV DL,13 ;код возврата каретки
INT 21Н ;Выводим
MOV DL,10 ;код перевода строки
INT 21Н ;выводим
;---Ищем следующий файл
LEA DX,path2 ;Указываем на строку пути
MOV AH,4FH ;Номер функции
INT 21Н ;Ищем сл. файл
JC FINISHED ;Если нет, то выходим
JMP SHORT NEXT_LINE ;Иначе выводим имя файла
FINISHED:
mov ah,9h
lea dx,msgl
int 21h
call
key
;Удаляем наш подкаталог CATALOG
LEA DX,PATH ;DS:DX Путь к подкаталогу
MOV AH,3aH ;Функция удаления
INT 21Н ;Удаляем
JC
ERROR 1 ;Обработка ошибок
exit:
mov ah,4ch
int21h
error_rout:
jmp exit
;-----------------------------
;Процедура, ждет нажатия любой клавиши
;-----------------------------
key ргос
xor ah,ah
int 16h
ret
key endp
;-----------------------------
code ends
end begin
Приложение Б. Листинг программы
Title Catalog_Work
stk segment stack
dw 90 dup(?)
stk ends
Data segment
CURRENT_DIR DB 64DUP(?),'$'
path_cur db 'e:\bp\bin'A13,10,'$'
path db 'd:\catalog',0
path2 db 'd:\catalog\*.*',0
file 1 db 'd:\catalog\file 1.txt',0
file2 db 'd:\catalog\file2.txt',0
file3 db'd:\catalog\file3.txt',0
cat_crt db 'Catalog create>','$'
wrmsg db ‘Napishem informaciuy w catalog',13,10,'Sama informacia: ',13,10,'$'
errl_msg db 'Catalog sushestwuiet ili newozmogno sozdat ',13,10,'$'
msgl db 'Pered udaleniem kataloga sotrite iz nego wsiu informaciu i posle nagmite enter',13,10,'$'
msg_cat_setup db 'Ustanofka tekushego katologa',13,10,'$'
msg_cur_cat db 'Tekushii catalog> ','$'
razd db 13,10,'$'
dta db 256 dup(?)
Data ends
Code segment
assume cs:сode, ds:data, ss:stk
begin:
mov ax,data
mov ds,ax
mov ah,9h
lea dx,msg_cat_setup
int21h
MOV AH,3BH
LEA DX,PATH_cur
INT
21H
MOV AH,47H
LEA SI,CURRENT_DIR
MOV DL,5
INT
21H
mov ah,9h
lea dx,msg_cur_cat
int 21h
mov ah,9h
lea dx,current_dir
int 21h
LEA DX,path
MOV AH,39H
INT 21H
JC
ERROR 1
mov ah,9h
lea dx,cat_crt
int 21h
mov ah,9h
lea dx,razd
int 21h
mov ah,9h
lea dx,wr_msg
int21h
call
key
mov ah,3ch
mov al,2
mov cx,0
lea dx,filel
int 21h
mov ah,3ch
mov al,2
mov cx,0
lea dx,file2
int21h
mov ah,3ch
mov al,2
mov cx,0
lea dx,file3
int
21h
jmp a
error 1:
mov ah,9h
lea dx,errl_msg
int 21h
jmp exit
a:
LEA DX,DTA
MOV АН,1АН
INT
21H
MOV AH,4EH
LEA DX,path2
MOV CX,0
Информация о работе Работа с каталогами и подкаталогами, работа с файлами