Сборник по задачам и примерам Assembler


         

о котором будем получать информацию


BY_HANDLE_FILE_INFORMATION struc "DwFileAttributes dd ? FtCreationTime dd 2 dup(?) FtLastAccessTime dd 2 dup(?) FtLastWriteTime dd 2 dup(?) DwVolumeSerial Number dd ? NFileSizeHigh dd ? NfileSizeLow dd ? NnumberOfLinks dd ? NFilelndexHigh dd ? NFilelndexLow dd ? BY_HANDLE_F1LE_INFORMATION ends

.data

file_info_ BY_HANDLE_FILE_INFORMATION <>

poir,t_find_ dd file_info_

filename db 'my_file with long name.txt'.O

point_fname dd filename

handle dw 0

:.........

.code

.файл, о котором будем получать информацию

mov bx.0100h+0400h;не использовать буферизацию

содержимое 01 в псевдоним

movdx.l юткрыть файл, если он существует, иначе вернуть ошибку Ids si .point_fname-.формируем указатель на имя файла

mov di.7 repeat:mov ax.716ch

xor ex.ex

int21h

jnc ml

mov dx.10h

jmp repeat ml: mov handle.ax

действия при успешном открытии файла:

добавить в конец псевдонима символ 7 ; номер функции DOS атрибуты файла - обычный файл - доступ для чтения-записи

открываем файл

.если файл существовал, то переход

;создать файл

:переход - повторим открытие файла

:сохраним дескриптор файла

.получаем информацию о файле mov bx. handle

stc ;это обязательно

Idsdx.point_find_;формируем указатель на структуру BY_HANDLE_FILE_INFORMATION


Содержание  Назад  Вперед