Придумай инструкцию x86!

Тема в разделе "WASM.HEAP", создана пользователем alpet, 22 июн 2005.

  1. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    576
    Для процов, начиная с 386, может и была, типа той, про которую выше упомянул Marylin.
    Но разговор же начался про то, как сегменты появились, а появились они не в 386, а еще в конце 70-х в 8086/8088, в которых в помине не было никакого защищенного режима.

    Причем тут год моей регистрации на васме - вообще не понимаю.
    --- Сообщение объединено, 8 май 2026 в 18:12 ---
    Если ты имеешь в виду, как осуществлялась релокация программ - так с помощью таблицы релоков совместно с начальной настройкой сегментных регистров. Например, еще до всяких MS-DOS и 8086 еще CP/M на восьмибитном 8080, на котором никаких сегментов не было, а только плоские 64 килобайта, умудрялась и выделять и грузить программы по разным адресам.

    А выделение памяти под MS-DOS (как и в CP/M) - это была вообще формальность, полагающаяся на добросовестность приложения, которое не должно было лазить за пределы того, что дала операционка. Но фактически любое досовское приложение могло обратиться к любым адресам в пределах мегабайта (и все испортить).
     
    Последнее редактирование: 8 май 2026 в 18:15
    Ahimov нравится это.
  2. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    646
    Dmitry_Milk,

    Понимаешь что такое локальный блок памяти, tls ?

    Для первичной обработки, любого события, необходимо сделать область памяти независимой от задачи. Ты имеешь смещение аргумента в сегменте, в ядре это PCR, в юзер это TEB.

    В инструкции есть префикс, меняющий сегмент. И механизм защиты разумеется.

    Эту фигну проще боту отдать, набор ручного текста не имеет смысла.
    --- Сообщение объединено, 8 май 2026 в 18:24 ---
    Dmitry_Milk

    >>

    Причем тут год моей регистрации на васме - вообще не понимаю.
    --- Сообщение объединено, 9 мин. назад ---​

    А как без сегментации выделять память ?​
    Если ты имеешь в виду, как осуществлялась релокация программ - так с помощью таблицы релоков совместно с начальной настройкой сегментных

    В дос где небыло пе-формата ?

    Что вы курите за вещества ?
     
  3. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    576
    Ты уверен, что ты говоришь про процессоры Intel 8086/8088 ?

    Найди какие-нибудь другие вещества, чтоб объяснить, как разруливались FAR-джампы (содержащие в явном виде как сегмент, так и смещение) в досовских EXE-шниках больше 64 килобайт?
     
  4. Alikberov

    Alikberov Member

    Публикаций:
    0
    Регистрация:
    26 июл 2017
    Сообщения:
    79
    Суть идеи в другом: Пин "min/max" могли бы подключить к этому делу и в "максимальном режиме" 16-битное значение сегмента выдавать в дополнительном цикле для "адресного сопроцессора" как есть. А там, раз "система в режиме максимума", пусть сопроцессор формировал бы хоть 20-битный, хоть 32-битный адрес, и сам бы занимался защищённым режимом.

    То есть, раз сам i8086 был экспериментальным и корявым, имхо, Intel могла бы выпустить i8086A, аналогично как i8080A, который мог бы использоваться в профессиональных системах.

    Имхо, Intel следовало бы развивать адресные сопроцессоры, а не линейку 186, 286 и 386.
     
  5. q2e74

    q2e74 Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    1.017
    типа как "сортировочные сети" и алгебраические решетки?
     
  6. Alikberov

    Alikberov Member

    Публикаций:
    0
    Регистрация:
    26 июл 2017
    Сообщения:
    79
    Эм... Не совсем понял...
    Я просто о том, что помимо i8087/FPU в сопроцессоры могли бы разработать и MMU с теми же Escape-командами для аппаратного управления памятью.
    Тут где-то цитата была "Слишком быстро i8087 стал популярным и народным", хотя Escape-команды могли поддержать десятки сопроцессоров.