Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2012, 00:43   #1
Kayako
 
Регистрация: 28.09.2010
Сообщений: 8
По умолчанию Работа с файлами

Помогите пожалуйста разобраться!
Необходимо, чтобы в создаваемый программой файл записывались все имена файлов директории, а также размер каждого файла в байтах. У меня есть программа, которая делает все необходимые функции, вот только записывает в файл рядом с именем - атрибуты. Подскажите пожалуйста, как можно записывать в файл имя и размер каждого файла. Вот код:

Код:
.model	small
.stack	100h
.data
filename db "Atributi.txt",0
handle dw 0         ; дескриптор файла
find db '*.*',0
attribute db ' ',8 dup(0),0Dh,0Ah
dta  db 256 DUP(?)
.code
start:
mov	ax,@data   ; адрес сегмента данных в регистр ах
mov	ds,ax
xor	ax,ax

lea dx,dta        ; DS:DX укaзывaют нa DTA
mov ah,1AH        ; функция уcтaнoвки DTA
int 21h

;---открыть файл для записи---

xor cx,cx   ; атрибуты файла - обычный файл
mov bx,2   ; режим доступа - для чтения-записи
mov dx,12h   ; если файл существует, открыть его без сохранения прежнего содежимого или создать его
lea si,filename   ; формирование указателя на имя файла
mov ah,6Ch   ; номер функции DOS
int 21h   ; открываем (создаем) файл
jc exit   ; если ошибка - переход на конец
mov handle,ax   ; сохраняем десриптор файла

;---поиск первого файла по шаблону---

mov ah,4Eh          ; поиск первого файла
lea dx, find
int 21h
jc exit   ; переход, если ошибка

;---запись в файл---

m5:
lea dx,dta[1Eh]
xor cx,cx
xor si,si
mov bx,dx
m1:
   cmp byte ptr bx[si],0
   je m2
   inc cx
   inc si
   jmp m1
m2: 
mov bx,handle   ; дескриптор файла в bx
mov ah,40h
int 21h
mov al,dta[15h]
mov cx,8
mov si,1
m3:
shl ax,1
add ah,30h
mov attribute[si],ah
xor ah,ah
inc si
loop m3
lea dx,attribute
mov cx,11
mov ah,40h
int 21h

;---поиск остальных файлов и запись в файл---

lea dx, find
m4:
mov ah,4Fh          ; найти следующий файл
int 21h
jnc m5
;--------------------------------------------

exit:
mov	ax,4c00h
int	21h
end	start
Kayako вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами maxwel6064 Паскаль, Turbo Pascal, PascalABC.NET 2 25.11.2011 08:47
работа з файлами mike_DI Общие вопросы C/C++ 0 07.11.2011 21:13
Работа с файлами maxwel6064 Паскаль, Turbo Pascal, PascalABC.NET 6 06.11.2011 18:23
Работа с файлами AntiDriver Паскаль, Turbo Pascal, PascalABC.NET 3 06.06.2010 00:04