Секции в ассмблере и процессоре

Рейтинг: 3Ответов: 2Опубликовано: 28.05.2023

Я правильно понимаю что в процессоре нет подобия тех секций, которые есть в ассемблере (text, bss, data). Я говорю про архитектуру amd64, хотя может в других есть?

Ответы

▲ 6Принят

Да, вы правы. Эти секции являются частью формата исполняемых файлов и используются операционной системой при загрузке программы в память. Архитектура amd64, как и большинство других архитектур процессоров, не имеет таких секций.

▲ -1

Я правильно понимаю что в процессоре нет подобия тех секций, которые есть в ассемблере (text, bss, data)

Секция - это блок памяти ОЗУ определённого размера. Когда процессор работет в реальном режиме RM, то секции называют сегментами. Поэтому у процессора нет секций, но зато есть шесть сегментных регистра CS/DS/SS/ES/FS/GS (code,data,stack,extra,+2extented), при помощи которых ОС назначает "атрибуты защиты" этим секциям.

В реальном режиме MS-DOS модель памяти "сегментная" с макс.размером 1 сегмента =64 КБ - здесь из атрибутов только размер. В защищённом режиме модель автоматически меняется на "плоскую Flat" (виртуальную), с макс.размером секции =4 ГБ (для х32). Тут уже в игру вступают "селекторы и дескрипторы" в сегментных регистрах, битовые поля в которых определяют атрибуты доступа к секциям, например RO/RW/RWE (Read-Only, Read-Write, Read-Write-Execute).