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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 971
от 07.02.2008, 20:05

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

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


Вопрос № 121246: Всем здравствуйте. Помогите, пожалуйста решить такой вопрос: Где можно найти полный путь к файлу, если он ищется с помощью функции 4Eh и 4Fh по маске, ну скажем : FILE_NAME DB ' D:*.txt',0 : ведь DTA заполняется только именем фа...
Вопрос № 121294: Уважаемые эксперты! Нужно написать програмульку, для реальтного режима. В CX хранится длина строки. По какому то адресу (непомню уже) хранится сама строка. Нужно посимвольно вывести. Плз, как можно проще и как можно больше комментариев....
Вопрос № 121298: Уважаемые эксперты, помогите разобраться с программой приведенной в рассылке №9. Не совсем понятно зачем производится сравнение метки "Handle" с 0ffffh в процедурах зоткрытия и закрытия файла. Еще не понял такие строки (в основном коде прог...

Вопрос № 121.246
Всем здравствуйте. Помогите, пожалуйста решить такой вопрос:
Где можно найти полный путь к файлу, если он ищется с помощью функции 4Eh и 4Fh по маске, ну скажем
:
FILE_NAME DB ' D:*.txt',0
:
ведь DTA заполняется только именем файла, например (myprog.txt)
Буду очень благодарен, заранее спасибо.
Отправлен: 01.02.2008, 21:50
Вопрос задал: Busys (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Busys!

Функции 4Eh | 4Fh занимаются поиском либо в текущем каталоге, либо в каталоге который указан в маске поиска.
Текущий каталог может быть указан в маске поиска - анализ маски поиска, если там нет указанного каталога(т.е. просто '*.txt'), то получаете текущий путь с помощью 47h (получить текущий каталог: ВНИМАНИЕ: возвращаемое значение не содержит имя дисковода и ":" и если текуший каталог корневой , то первый байт равен 00h) и в DTA прочитать первый байт, который указывает на имя диска поиска(если старший бит = 1, то это сетевой диск, т.е. бит нужно обнулять).
Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 01.02.2008, 22:23
Оценка за ответ: 4
Комментарий оценки:
Извините за то что долго не мог оценить ваш ответ. Пришлось разбираться с полученной информацией,искать свои ошибки и недоделки(может быть ) отладчика, но впрочем все стало на места свои. Единственно что хотелось бы это добавления примеров, объяснения вроде запусти файл из каталога такого-то найди файл в каталоге таком-то используй ф-ю 47h, на выходе должен получить то-то и то-то. Просто начинающему очень трудно искать ошибки. Но за-то крики YES, ПОЛУЧИЛОСЬ! или УУУФ, РАЗОБРАЛСЯ добавляют еще несколько байт информации в сером веществе. отдельное спасибо Олегу Владимировичу. Надеюсь на дальнейшее сотрудничество.


Вопрос № 121.294
Уважаемые эксперты!
Нужно написать програмульку, для реальтного режима.
В CX хранится длина строки. По какому то адресу (непомню уже) хранится сама строка. Нужно посимвольно вывести. Плз, как можно проще и как можно больше комментариев.
Отправлен: 02.02.2008, 10:35
Вопрос задал: Алин Сергей Владимирович (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Овчинников Алексей
Здравствуйте, Алин Сергей Владимирович!
Представляю 4-ре варианта вывода(прямым отображением,средствами DOS И BIOS)
Все примеры под компилятор FASM

Приложение:

---------
Пишу на FASM

Ответ отправил: Овчинников Алексей (статус: 3-ий класс)
Ответ отправлен: 05.02.2008, 00:01


Вопрос № 121.298
Уважаемые эксперты, помогите разобраться с программой приведенной в рассылке №9. Не совсем понятно зачем производится сравнение метки "Handle" с 0ffffh в процедурах зоткрытия и закрытия файла. Еще не понял такие строки (в основном коде программы):
mov ah,2
mov dl,7
int 21h
ret
Конечно последние 3 строчки я понимаю.
Заранее спасибо!
Отправлен: 02.02.2008, 10:55
Вопрос задал: Дейнеко Валерий Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Дейнеко Валерий Николаевич!

Это значение используется как индикатор открытия файла:
Open_file proc
cmp Handle,0FFFFh
jne Quit_open

в этом случае если дескриптор Handle не равен 0FFFFh(-1), то значит файл уже открыт в программе и его открывать не нужно.
Close_file proc
cmp Handle,0FFFFh
je No_close
. . .
mov Handle,0FFFFh
No_close:

в этом случае если дескриптор Handle равен 0FFFFh, то значит файл уже закрыт и его не нужно закрывать, иначе если файл открыт (Handle не равен 0FFFFh), то файл закрывается и устанавливается занчение Handle в -1.
В данном примере это не так очевидно, но если программа несколько раз открывает и закрывает файл, такой механизм проверки (защиты) оказывается эффективным.

mov ah,2
mov dl,7
int 21h

Этот код выводит символ с кодом в DL на активный видеоэкран, с той лишь разницей, что коды символов от 0 до 31(1Fh) являются служебными и за ними закрепленны определенные действия (переместить курсор вверх, вниз вправо, влево, в начало строки или на новую строку и т.д.). В данном случае пищим (звуковой сигнал ошибки) и выходим.

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 04.02.2008, 14:06
Оценка за ответ: 5


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

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное