Мешанина кода и данных.под WIN32

Тема в разделе "WASM.ASSEMBLER", создана пользователем zzzyab, 25 авг 2004.

  1. zzzyab

    zzzyab New Member

    Публикаций:
    0
    Регистрация:
    13 май 2004
    Сообщения:
    115
    Извините перепутал тему...





    Где то слишал что под WIN32 код и данные (и ресурсы) раздельно и мешать их нильзя. Но я сделал несколько прог (ер. влепил код в ресурсы, данные - в секцию кода) и они у меня работали. До какой степени это все можно мешать? В некрых чужих прогах это тоже работает - между сs и ds разницы нет что-ли ? Что вообще записывыатся в регистры при старте ?
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    zzzyab

    сs и ds разницы нет что-ли?

    Название модели памяти flat говорит о чем-нибудь? CS == DS == ES == SS. Как tiny только размер сегмента гораздо больше.
     
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Только наверно надо флажки секциям поправить.

    Коду - кодово, а данным - запись открыть :)
     
  4. antifatum

    antifatum New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2004
    Сообщения:
    32
    Адрес:
    Russia
    мешать можно. кстати, где-то слышал, что в 64разрядных процах запись в код (будет?) запрещена - это правда?
     
  5. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев


    будет запрещено выполнение кода в местах, для этого не предназначенных, на стеке, например
     
  6. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    antifatum



    Не знаю как у интел, а у АМД такие битики(NX) есть, только вот воспользуется ли ими микрософт?

    Данный бит присутствует в строках таблиц трансляции всех уровней: PML4E, PDPE, PDE, PTE. Только вот на рисунке 5-25 из раздела 5.3.4 второго тома "AMD x86-64 Architecture

    Programmer’s Manual", где объясняется трансляция для 2х мегабайтных страниц, вместе с PT исчезает и этот бит из PDE и получается что битом NX в PDPE контролируется одногигабайтная область(не многовато ли?!). Наверно его просто забыли нарисовать 8)
     
  7. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    В XP SP2 вроде воспользовались

    http://www.amd64.ru/index.php?link=2&addr=6&page=5