Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Зенченко Константин Николаевич
Статус: Профессор
Рейтинг: 176
∙ повысить рейтинг >>
Airyashov
Статус: 10-й класс
Рейтинг: 44
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 39
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1106
от 09.11.2008, 12:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 296, Экспертов: 19
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 149368: Здравствуйте уважаемы эксперты! У меня возникла проблема: Часть кода: mov ah, 4Eh ;Ищем первый файл по маске mov dx, offset ..... ;Смещение на маску для поиска<b...


Вопрос № 149.368
Здравствуйте уважаемы эксперты! У меня возникла проблема:

Часть кода:
mov ah, 4Eh ;Ищем первый файл по маске
mov dx, offset ..... ;Смещение на маску для поиска
int 21h

Label_1:
mov ah, 3D02h ; Открываем на чтение/запись
mov dx, 0080h ; КАКОЙ УКАЗЫВАТЬ СМЕЩЕНИЕ НА ИМЯ ФАЙЛА В DTA???
; C указанным смещением не работает

; ----Что то пишем---

mov ah, 4Fh ; Ищем следующий
mov dx, 0080h ;КАКОЕ СМЕЩЕНИЕ ЗДЕСЬ????
int 21h

jc Label_1 ; Есть еще файлы на запись?? переходим на метку...

Быть может здесь все в корень не правильно? Тогда подскажите как выглядит программка реализующая операцию поиска, открытия и записывания в файл.
Спасибо за ваши ответы....

Отправлен: 03.11.2008, 13:18
Вопрос задал: Krash (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Krash!
Примерно так:
Код:
.model tiny

_DTA struc
bRes db 21 dup (?)
bAttr db ?
dwTime dw ?
dwDate dw ?
ddSize dd ?
bName db 13 dup (?)
_DTA ends

.data
dta _DTA {}
mm db '*.*',0

.code
.startup

mov ah, 1ah
lea dx, dta
int 21h

mov ah, 4Eh ;Ищем первый файл по маске
mov dx, offset mm ;Смещение на маску для поиска
mov cx, 00h

Label_1:
int 21h
jc found_error
test byte ptr dta.bAttr, 10h ; проверим атрибут - подкаталог?
jnz next

; ищем только файлы...
push dx
mov ax, 3D02h ; Открываем на чтение/запись
lea dx, dta.bName ; СМЕЩЕНИЕ НА ИМЯ ФАЙЛА В DTA (+1eh)
int 21h

mov bx,ax
; ----Что то пишем---

mov ah,3eh ; закрываем
int 21h

pop dx ; восстановим для след поиска
next:
mov ah, 4Fh ; Ищем следующий
jmp Label_1 ; Продолжаем

found_error:
cmp ax,2 ; ошибка 2 (file not found) - завершение поиска
je finish
; здесь анализ всех остальных ошибок
finish:
.exit 0
end

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 03.11.2008, 15:53

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 149368 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.10 от 5.11.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное