Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2017, 11:46   #11
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от седьмой Посмотреть сообщение
И будет ли он один и тот же если его запускать всегда из одной программы
Не обязательно.
waleri вне форума Ответить с цитированием
Старый 17.04.2017, 12:08   #12
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Насколько я помню нет, он будет на вершине "стека" программ по-моему, а стек зависит от параметров загрузки, т.е. возможно сделать образ системы, где ваша прога будет иметь фикс адрес, но любой запуск чего-либо это может изменить.
...если вам реально нужен фиксированый адрес, то COM файлы (они не перемещаемы по своей сути), но там, кажется, 1 сегмент и все.

Последний раз редактировалось alexzk; 17.04.2017 в 12:16.
alexzk вне форума Ответить с цитированием
Старый 17.04.2017, 16:12   #13
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
то COM файлы (они не перемещаемы по своей сути), но там, кажется, 1 сегмент и все.
это да, но мне сом наверно не подойдет, у меня тип памяти large, это указано разработчиком драйвера, который 200 килобайт, он наверно не поместится в 1 сегмент. И потом вы же сами сказали, если будут запущены другие программы, то сегмент будет сдвигаться, значит надо каким то образом выбирать область памяти которая была бы всегда свободна? Наверно дальше мне эксперименты с сегментами нужно проводить уже в рабочей программе, запускать ее в разной последовательности по отношению к другим резидентым программам, у меня же дос и тут нет параллельных процессов, поэтому по идее не зависимо от файла сом это или ехе сегментный регистр должен быть одним и тем же? Но какая была логика у разработчика и в какие сегменты он пишет код, наверно можно выяснить только экспериментально, если добавить код принтф в тело кода.
седьмой вне форума Ответить с цитированием
Старый 17.04.2017, 16:15   #14
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Не обязательно.
если бы была винда то да, а тут чистый дос, параллельных процессов нет, резиденты никто менять и ставить не будет, вот разве что , если возьмут комп с другими параметрами железа, отличными от текущего и тогда наверно сегмент может измениться или нет?
седьмой вне форума Ответить с цитированием
Старый 17.04.2017, 16:17   #15
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Тут спасибо говорят людям за помощь или нет, просто привык на киберфоруме ставить плюсы, а тут не могу найти механизма.
седьмой вне форума Ответить с цитированием
Старый 17.04.2017, 16:24   #16
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

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

Попробуйте сканирование всей памяти, на предмет какой-то уникальной последовательности байт драйвера (это ж дос - защиты нет), далее от нее расчитывайте указатели относительно.
alexzk вне форума Ответить с цитированием
Старый 17.04.2017, 17:09   #17
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Спасибо за помощь, попробую
седьмой вне форума Ответить с цитированием
Старый 17.04.2017, 19:08   #18
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от седьмой Посмотреть сообщение
Тут спасибо говорят людям за помощь или нет, просто привык на киберфоруме ставить плюсы, а тут не могу найти механизма.
Весы под ником.
Croessmah вне форума Ответить с цитированием
Старый 17.04.2017, 19:41   #19
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от седьмой Посмотреть сообщение
отличными от текущего и тогда наверно сегмент может измениться или нет
Гарантий на адрес нет никаких, да и мне не совсем понятно зачем это нужно - всегда можно получить свой адрес при запуске.
waleri вне форума Ответить с цитированием
Старый 18.04.2017, 07:24   #20
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
да и мне не совсем понятно зачем это нужно
я сам пока не знаю что именно мне нужно, просто по логике возможны два варианта или адрес фиксированный или плавающий со смещением или вообще текущий, но вряд ли. Просто в программе задействованы не только переменные, но и конкретные адреса памяти, откуда они берутся пока не отследил, а предварительно хотел понять как устроен механизм обращения к памяти, что может быть, чего не может
седьмой вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться с указателями С++ sasha_14-88 Общие вопросы C/C++ 1 07.12.2014 10:39
Помогите разобраться с указателями igole Общие вопросы C/C++ 1 28.04.2013 16:47
Не могу разобраться с указателями FRATER1234 Общие вопросы C/C++ 7 13.10.2011 11:23
Товарищи, помогите разобраться с указателями scibern Общие вопросы C/C++ 7 11.01.2009 12:28
Помогите пожалуйста с динамической памятью и указателями Riddick2013 Помощь студентам 1 19.12.2007 14:41