Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывести скрытые файлы каталога на экран 
:(
    Опции темы
AndrewF1rst
Дата 26.11.2015, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.11.2015

Репутация: нет
Всего: нет



День добрый, товарищи программисты. Нужна программа которая выводит сообщение о наличии скрытых файлов в каталоге.
Начал писать программу, которая выводит содержимое каталога на экран, но при установки атрибута 2h попутно выводятся и остальные файлы, не являющиеся скрытыми. TASM, DOS, COM

Код

.model     tiny
        .code
        org        100h         ; СОМ-файл
start:
    push cs         ;на всякий случай, приравняем cs и ds
    pop ds          ;хотя в COM-файле они и так равны
 
    mov ah, 9       ;выводим на экран сообщение
    lea dx, msgpathrequest  ;в сообщении - просьба ввести имя каталога
    int 21h
 
    mov ah, 0Ah     ;вводим с клавиатуры строку
    lea dx, path        ;указываем на буфер ввода
    int 21h         ;буфер ввода имеет хитрую структуру
                ;первый байт - макс длина буфера
                ;во второй байт система положит количество считанных символов
                ;а с третьего байта начинается собственно буфер
 
    lea dx, pathstring  ;возьмём адрес начала введённой строки
    push dx         ;сохраним - этот адрес ещё понадобится
    add dl, byte ptr[pathactual]    ;к началу строки прибавим её длину, которую вернула предыдущая функция
    xor al, al      ;поправим старший регистр
    adc dh,al       ;типа а вдруг перенос? :)
    mov di, dx      ;поскольку имя каталога должно кончаться нулём,
    mov byte ptr[di], al    ;дадим ему в конце этот нуль
 
    mov ah, 3Bh     ;сменим каталог
    pop dx          ;на тот, что вводили
    int 21h
    jc no_such_directory    ;а если его нету - пойдём ругаться  
    
    
    mov ah,1ah
        mov dx,offset dta
        int 21h
        
    ;Ищем первый файл
    mov ah,4Eh          ; поиск первого файла
        mov cx,2h           ; указываем, что хотим найти скрытые файлы
    lea dx,searchPath
        int 21h
        jc  no_more_files   ; если CF = 1 - файлы кончились
 
print:
        mov ah,9h       ; вывод
        mov dx,offset dta + 1eh ; имени файла
        int 21h
 
    ; перевод на новую строку
        mov ah,9h
        mov dx,offset crlf
    int 21h
 
        mov ah,4Fh              ; найти следующий файл
    mov dx,offset dta
        int 21h
    jc  no_more_files
    jmp print       ;закрываем цикл
 
no_such_directory:
    mov ah, 9       ;вывод сообщения
    lea dx, msgnosuchdir    ;указываем адрес сообщения
    int 21h
    jmp no_more_files
 
no_more_files:                         ; если файлы кончились,
        mov ah,9h
        mov dx,offset message
        int 21h
    
        ; задержка
        xor ax,ax
        int 16h
   
        mov ah,4ch
        int 21h
 
 
msgpathrequest    db 0Ah, 0Dh, "Enter the full directory name: $"
msgnomorefiles  db 0Ah, 0Dh, "No files found in current directory$"
msgnosuchdir    db 0Ah, 0Dh, "No such directory$"
crlf db 0Dh,0Ah,'$' ;аналогично, новая строка
searchPath  db "*.*",0
dta     db 2ch dup (?)
        db "$"
message db 'Press any key...','$'
path        label byte  ;указатель на буфер ввода строки
pathlen     db 66
pathactual  db ?
pathstring  db 66 dup (?)
 
end  start


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Снимок2.JPG 132,97 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1311 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.