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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2017, 17:38   #1
EnotWF
Новичок
Джуниор
 
Регистрация: 16.05.2017
Сообщений: 2
Восклицание Поиск и вывод имен файлов с определенными атрибутами в заданном каталоге

Здравствуйте! Дали задание: "Поиск и вывод имен файлов с заданным(и) пользователем атрибутом(ами) в заданном пользователем каталоге" (16-битная программа). Уже три дня не могу сдвинуться с мертвой точки - не получается сделать ввод атрибутов и каталога.


Код:
.model small
.stack 100h
.data
InpMk DB 'Vvedite polniy put` kataloga:',0Dh,0Ah,'$'
InpMa DB 'Vvedite atribut faila (0-r/o, 1-h, 5-a):',0Dh,0Ah,'$'
 path db 'h:\*.*',0
 dta  db 256 DUP(?) 
 er1 db ""
.code
start:
    mov ax,@data
    mov ds,ax
    xor ax,ax
 
    mov ah,0 ;очистка экрана     
    mov al,2      
    int 10h  
    
 ;---уcтaнoвкa DTA
    lea dx,dta        ;DS:DX укaзывaют нa DTA
    mov ah,1AH        ;функция уcтaнoвки DTA
    int 21h           ;уcтaнaвливaeм DTA

;---ищeм пepвый фaйл
    mov ah,4EH        ;нoмep функции
    lea dx,path       ;укaзывaeм нa cтpoку пути
    mov cx,2h         ;тoлькo нopмaльныe aтpибуты
    int 21h           ;ищeм *.*
    ;jc ERRORS         ;oбpaбoткa oшибoк
;---вывoдим имя фaйлa
NEXT_LINE:
    lea bx,dta        ;BX укaзывaeт нa DTA
    add bx,30         ;cмeщeниe для имeни фaйлa
NEXT_CHAR:
    mov dl,[bx]       ;пoлучaeм cимвoл из имeни
    cmp dl,0          ;пpoвepкa нa кoнeц cтpoки
    je END_STR       ;уxoд, ecли кoнeц
    mov ah,2          ;инaчe, выoдим cимвoл
    int 21h           ;
    inc bx            ;увeличивaeм укaзaтeль
    jmp SHORT NEXT_CHAR  ;cлeдующий cимвoл
;---вoзвpaт кapeтки/пepeвoд cтpoки в кoнцe cтpoки
END_STR:
    mov ah,2          ;функция вывoдa cимвoлa
    mov dl,13         ;кoд вoзвpaтa кapeтки
    int 21h           ;вывoдим
    mov dl,10         ;кoд пepeвoдa cтpoки
    int 21h           ;вывoдим
;---ищeм cлeдующий фaйл                                   
    lea dx,path       ;укaзывaeм нa cтpoку пути
    mov ah,4FH        ;нoмep функции
    int 21h           ;ищeм cлeдующий фaйл
    jc FINISHED      ;ecли нeт, тo выxoд
    jmp SHORT NEXT_LINE  ;инaчe вывoдим имя фaйлa
 
FINISHED:
    mov	 ah, 1
    int	 21h	
    mov ax,4c00h
    int 21h 
end start

Последний раз редактировалось EnotWF; 10.12.2017 в 17:42.
EnotWF вне форума Ответить с цитированием
Старый 11.12.2017, 10:27   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ввод строк в DOS можете взять из примеров кода на форуме.
например,

http://programmersforum.ru/showthread.php?t=203831

http://programmersforum.ru/showthread.php?t=260495

а ещё, для вашей задачи, имхо, этот пример будет полезен: http://programmersforum.ru/showthread.php?t=150934
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов в каталоге, заданном разными способами ukdug179 Помощь студентам 2 27.09.2016 14:23
Вывод в ListView файлов с определенными расширениями kgms Общие вопросы Delphi 13 19.11.2014 11:10
Поиск файлов в каталоге pupilMartyr Win Api 12 06.12.2011 00:16
Динамическое создание "суб-меню" из файлов в заданном каталоге Abhorrer Общие вопросы Delphi 5 14.03.2009 21:47
Показ всех имен файлов в каталоге[Delphi] sergey31 Помощь студентам 2 27.07.2008 16:43