Для процов, начиная с 386, может и была, типа той, про которую выше упомянул Marylin. Но разговор же начался про то, как сегменты появились, а появились они не в 386, а еще в конце 70-х в 8086/8088, в которых в помине не было никакого защищенного режима. Причем тут год моей регистрации на васме - вообще не понимаю. --- Сообщение объединено, 8 май 2026 в 18:12 --- Если ты имеешь в виду, как осуществлялась релокация программ - так с помощью таблицы релоков совместно с начальной настройкой сегментных регистров. Например, еще до всяких MS-DOS и 8086 еще CP/M на восьмибитном 8080, на котором никаких сегментов не было, а только плоские 64 килобайта, умудрялась и выделять и грузить программы по разным адресам. А выделение памяти под MS-DOS (как и в CP/M) - это была вообще формальность, полагающаяся на добросовестность приложения, которое не должно было лазить за пределы того, что дала операционка. Но фактически любое досовское приложение могло обратиться к любым адресам в пределах мегабайта (и все испортить).
Dmitry_Milk, Понимаешь что такое локальный блок памяти, tls ? Для первичной обработки, любого события, необходимо сделать область памяти независимой от задачи. Ты имеешь смещение аргумента в сегменте, в ядре это PCR, в юзер это TEB. В инструкции есть префикс, меняющий сегмент. И механизм защиты разумеется. Эту фигну проще боту отдать, набор ручного текста не имеет смысла. --- Сообщение объединено, 8 май 2026 в 18:24 --- Dmitry_Milk >> Причем тут год моей регистрации на васме - вообще не понимаю. --- Сообщение объединено, 9 мин. назад ---↑ А как без сегментации выделять память ?Если ты имеешь в виду, как осуществлялась релокация программ - так с помощью таблицы релоков совместно с начальной настройкой сегментных В дос где небыло пе-формата ? Что вы курите за вещества ?
Ты уверен, что ты говоришь про процессоры Intel 8086/8088 ? Найди какие-нибудь другие вещества, чтоб объяснить, как разруливались FAR-джампы (содержащие в явном виде как сегмент, так и смещение) в досовских EXE-шниках больше 64 килобайт?
Суть идеи в другом: Пин "min/max" могли бы подключить к этому делу и в "максимальном режиме" 16-битное значение сегмента выдавать в дополнительном цикле для "адресного сопроцессора" как есть. А там, раз "система в режиме максимума", пусть сопроцессор формировал бы хоть 20-битный, хоть 32-битный адрес, и сам бы занимался защищённым режимом. То есть, раз сам i8086 был экспериментальным и корявым, имхо, Intel могла бы выпустить i8086A, аналогично как i8080A, который мог бы использоваться в профессиональных системах. Имхо, Intel следовало бы развивать адресные сопроцессоры, а не линейку 186, 286 и 386.
Эм... Не совсем понял... Я просто о том, что помимо i8087/FPU в сопроцессоры могли бы разработать и MMU с теми же Escape-командами для аппаратного управления памятью. Тут где-то цитата была "Слишком быстро i8087 стал популярным и народным", хотя Escape-команды могли поддержать десятки сопроцессоров.