Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.