Re: Структура программы (.text, .data)
От: vnp  
Дата: 07.09.05 17:40
Оценка:
Здравствуйте, Larsito, Вы писали:

L>1.При создании программы на ассемблере возможно указать ситуацию, когда после загрузки программы данные находятся по старшим адресам.

L> dec byte ptr [ebp+K32_Limit]
L>WeGotK32:
L> xchg eax,esi
L> ret

L> K32_Limit dw limit

L>Естественно, секция открыта для чтения/записи. Никаких особых уловок не применяются.

L>В с++ такая ситуация не проходит.

L>Код, обращающийся к переменной, объявленной ниже себя, выдает ошибку.
L>2. При просмотре в отладчике памяти, выделенной для программы, у ассемлерной данные находятся ниже кода (простите за простоту). У сишной — в начале.

L>Возможно есть директивы прагмы для компилятора VC 6 ???


Взаимное расположение имен в исходном коде не имеет никакого значения. Компилятор не присваивает окончательных адресов. Размещение секций -- дело линкера. Не знаю, как это сделать в VC; для gcc (точнее, ld), нужно передать линкеру опции -Ttext text_address -Tdata data_address и т.д.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.