Форум программистов, компьютерный форум CyberForum.ru

Работа с прерываниями - C++

Восстановить пароль Регистрация
 
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
10.06.2013, 20:56     Работа с прерываниями #1
Доброе время суток. Возник вопрос, недавно я начал учиться работать с прерываниями в DOS, но до конца еще не разобрался, а сейчас пишу программу для поиска файлов в каталоге. Но я не знаю как передать параметру DSX строку, т. к. при передачи (DSX=text возникает ошибка(undefinded symbol 'DX')

ниже приведена справка по прерыванию
Поиск в каталогах
Часто перед программистом стоит задача определения текущего содержимого каталога. При описании логической структуры диска мы приводили текст программы, выводящей на экран содержимого корневого каталога и других каталогов. Эта программа использовала загрузочный сектор логического диска и таблицу размещения файлов. Вы можете использовать такой способ, однако, если вам не требуется информация о номерах начальных кластеров файлов и дескрипторы удаленных файлов, лучше применить специальные функции MS-DOS, предназначенные для поиска файлов в каталогах.
Пара функций 4Eh и 4Fh предназначены для сканирования каталогов.
Эти функции используются вместе следующим образом:
Вызывается функция 4Eh для поиска в каталоге файла, соответствующего образцу. В образце можно использовать символы ? и *, которые означают, соответственно, один любой символ и любое количество любых символов. Информация о найденном файле располагается в специальной области, назначенной каждой работающей программе - области DTA.
Вызывается в цикле функция 4Fh для поиска остальных файлов, удовлетворяющих образцу, заданному при вызове функции 4Eh. Условие завершения цикла - отсутствие в каталоге указанных файлов.
Приведем формат вызова функций 4Eh и 4Fh.
Функция 4Eh:
На входе: AH = 4Eh
CX = Атрибуты файла, которые будут использованы при поиске. Будут найдены файлы, имеющие заданный в этом регистре атрибут.
DSX = Адрес строки в формате ASCIIZ, содержащей путь каталога или файла.
На выходе: AL = Код ошибки, если был установлен в 1 флаг переноса CF.
Функция 4Fh:
На входе: AH = 4Fh
На выходе: AL = Код ошибки, если был установлен в 1 флаг переноса CF.
Заранее спасибо!

Добавлено через 45 секунд
смайлики все испортили, но думаю суть остается ясна)

Добавлено через 3 часа 9 минут
никто не может помочь?

Добавлено через 4 часа 57 минут
кто-нибудь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 20:56     Работа с прерываниями
Посмотрите здесь:

C++ Работа со структурами, работа с векторами.
C++ Работа с битами И Работа с символьными данными
Процессы с прерываниями C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dr_Quake
Заблокирован
10.06.2013, 21:08     Работа с прерываниями #2
Открой для себя галку внизу - отключить смайлы в тексте.

Работа с прерываниями в C++ зависит от досовского компилятора, Turbo C? BorlandCPP?
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
11.06.2013, 10:05  [ТС]     Работа с прерываниями #3
Dr_Quake, turbo c++ 1.0
Dr_Quake
Заблокирован
11.06.2013, 10:15     Работа с прерываниями #4
Если охота поизвращаться без особого количества __asm -

http://geezer.osdevbrasil.net/osd/intr/dos-16.c
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
11.06.2013, 10:21  [ТС]     Работа с прерываниями #5
Dr_Quake, спасибо, но я так и не увидел того что хотел, передавать значения регистру типа DS:DX надо просто _DX=x?
Dr_Quake
Заблокирован
11.06.2013, 10:23     Работа с прерываниями #6
Это метод обращения к регистрам просто. DS = текущий сегмент по идее - он зависит от модели памяти программы, для .small он всегда один будет например, почитай про сегментную адресацию в 16битах.
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
11.06.2013, 10:27  [ТС]     Работа с прерываниями #7
Dr_Quake, спасибо
Dr_Quake
Заблокирован
11.06.2013, 10:28     Работа с прерываниями #8
Вкратце - ты очень зря это на C делаешь, все курсы на асм заточены по прерываниям DOS, их почитай сначала.
Yandex
Объявления
11.06.2013, 10:28     Работа с прерываниями
Ответ Создать тему
Опции темы

Текущее время: 01:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru