В режиме совместимости 32 бит у современных ОС игнорируется сегментная адресация? Привет, Тостер. Прочитал в инете, что современные ОС игнорируют сегментную трансляцию.
1. Насколько это верно для Linux и Win NT 10?
2. Пишут, что секции в PE заменяют сегменты при отображении образа. Получается вирт адреса секций ни в какие регистры не записываются при загрузке в память?
3. А если я пишу программу на ассемблере, используя регистры для этой селекторной трансляции, то мое приложение не будет корректно выполнено в такой системе или как это разрешается?

21 Авг 2019 в 06:52
152 +1
0
Ответы
1

Для Linux и Windows NT 10 это не совсем верно. Сегментация как концепция все еще существует, но современные ОС в основном используют плоскую память и плоскую адресацию, что позволяет им эффективнее управлять памятью.

В PE (Portable Executable) файле секции действительно заменяют сегменты при загрузке в память. Виртуальные адреса секций могут быть записаны в соответствующие регистры при загрузке, чтобы выполнить необходимую трансляцию.

Если вы пишете программу на ассемблере и прямо используете сегментные регистры для трансляции адресов, ваше приложение может работать некорректно в системах, которые игнорируют сегментацию. В этом случае вам нужно будет адаптировать свой код для работы в среде с плоской адресацией.

20 Апр в 13:12
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир