Вопрос № 28804: Добрый день. Уважаемые Эксперты, не подскажите ли как получить сегмент и смещение подпрограммы которая находиться в другом сегменте команд?...
Вопрос № 28.804
Добрый день. Уважаемые Эксперты, не подскажите ли как получить сегмент и смещение подпрограммы которая находиться в другом сегменте команд?
Отвечает: Стас
Здравствуйте, Solodov Evgeniy Vladimirovich!
DOS?
А что ты знаешь об этой подпрограмме? Потому как прямой ответ на твой вопрос = никак.
Другое дело если эта подпрограмма сама "публикует" свой сегмент и смещение через какое либо прерывание, если это command.com или другая известная программа. Ну и так далее. Или искать в памяти по сигнатуре. Правда потом отделить сегмент от смещения будет мммммм сложновато.
Вообще недостаточно информации. Опиши что конкретно ты хочешь сделать. С какими программами. Может вообще не в DOS...
Ответ отправил: Стас (статус: Специалист)
Отправлен: 03.11.2005, 00:51 Оценка за ответ: 5 Комментарий оценки: Да, тема про DOS. Начал недавно просвящаться.Так вот, штука такая: желаю сделать два сегмента программ. В одном сегменте программа инициализирующая вектор прерывания. В другом собственно сам обработчик прерывания. Так вот для инициализации вектора надо бы знать полный адрес обработчика.
Отвечает: Boriss
Здравствуйте, Solodov Evgeniy Vladimirovich!
Точно, не совсем понятно про проблемы. В приложении код, как вызывать процедуру из другого сегмента ДАННОЙ программы. Это то, что нужно Вам?
Еще в сегменте данных proc2_addr dd proc2 - переменная, где хранится ПОЛНЫЙ адрес процедуры
Приложение:
--------- Прорвемся! (Быть может :(( )
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 03.11.2005, 16:18 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ.
Отвечает: Юра Устинов
Здравствуйте, Solodov Evgeniy Vladimirovich!
Чтобы получить сегмент, к сожалению опираюсь на память, можно получить используя seg:
mov ax,seg exit
Где exit - ваша подпрограмма.
Ну а смещение по-старинке - offset.
--------- Спасём Россию!!!
Ответ отправил: Юра Устинов (статус: 4-ый класс)
Отправлен: 03.11.2005, 17:58 Оценка за ответ: 5 Комментарий оценки: спасибо за ответ