Как узнать размер сегментов на С++?
От: AgBoKaT  
Дата: 15.10.04 09:03
Оценка:
Как вычислить, напр, размер сегмента кода программы на С++?
На asmе вот вводим например метки в начале и конце сегмента и находим разность их смещений... Изв-те если вопрос ламерско поставлен но в Си я новичок(((

18.10.04 04:15: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: Как узнать размер сегментов на С++?
От: glyph  
Дата: 15.10.04 10:13
Оценка:
Здравствуйте, AgBoKaT, Вы писали:

ABK>Как вычислить, напр, размер сегмента кода программы на С++?

ABK>На asmе вот вводим например метки в начале и конце сегмента и находим разность их смещений... Изв-те если вопрос ламерско поставлен но в Си я новичок(((
Можно попытаться через поля в заголовке исполняемого файла. Можно попытаться через асм. А зачем это?
glyph
Re[2]: Как узнать размер сегментов на С++?
От: AgBoKaT  
Дата: 16.10.04 03:37
Оценка:
Здравствуйте, glyph, Вы писали:

Можно попытаться через поля в заголовке исполняемого файла. Можно попытаться через асм. А зачем это?

Это для защищенного режима надо для инициализации таблицы GDT, хотя оказалось размер можно вычислить используя asm-ий файл(и вообще наверно можно указать размер заведомо больший нужного), получаемый при компиляции сишной программы с ключом -S. Но вот мне интересно: а можно ли средствами с++ получить адрес, напр, сегмента кода, т.е. без использования этого:
unsigned CSEG;
__asm{
mov CSEG,cs
}
???
Re[3]: Как узнать размер сегментов на С++?
От: prVovik Россия  
Дата: 16.10.04 06:51
Оценка:
Здравствуйте, AgBoKaT, Вы писали:

ABK>Здравствуйте, glyph, Вы писали:


ABK>Можно попытаться через поля в заголовке исполняемого файла. Можно попытаться через асм. А зачем это?


ABK>Это для защищенного режима надо для инициализации таблицы GDT, хотя оказалось размер можно вычислить используя asm-ий файл(и вообще наверно можно указать размер заведомо больший нужного), получаемый при компиляции сишной программы с ключом -S. Но вот мне интересно: а можно ли средствами с++ получить адрес, напр, сегмента кода, т.е. без использования этого:

ABK>unsigned CSEG;
ABK>__asm{
ABK> mov CSEG,cs
ABK>}
ABK>???

А чем тебе не нравится __asm?
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re: Как узнать размер сегментов на С++?
От: Eugene Kilachkoff Россия  
Дата: 16.10.04 10:20
Оценка:
Здравствуйте, AgBoKaT, Вы писали:

ABK>Как вычислить, напр, размер сегмента кода программы на С++?

ABK>На asmе вот вводим например метки в начале и конце сегмента и находим разность их смещений... Изв-те если вопрос ламерско поставлен но в Си я новичок(((
А что ты будешь делать на платформе, где нет сегментов ?
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как узнать размер сегментов на С++?
От: AgBoKaT  
Дата: 18.10.04 09:29
Оценка:
Здравствуйте, Eugene Kilachkoff, Вы писали:

EK>А что ты будешь делать на платформе, где нет сегментов ?


Сорри! я с такими платформами не сталкивался и не ставил целью сделать чтото кроссплатформенное. Так получилось что начал изучать языки с асмы, и задался целью даже если не сравнить то по крайней мере интересно: все ли возможности Асма можно реализовать средствами Сипа??? может и глупо конечно... они могут друг друга дополнять.. но все же?
Re[4]: Как узнать размер сегментов на С++?
От: AgBoKaT  
Дата: 18.10.04 09:32
Оценка:
Здравствуйте, prVovik, Вы писали:

V>А чем тебе не нравится __asm?


asm нравится! Но неужели такой "Великий и Могучий" (не русский) Сип не может этого, будто является не самостоятельным языком, лишь оболочкой для "низенького" асма))

а используя far указатель на какую-нить переменную по идее должен содержать как раз сегмент (не селектор — режим real) и смещение так? тогда че за нафиг где сегмент елы-палы???
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.