Здравствуйте, 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 и т.д.