Секции в ассмблере и процессоре
Я правильно понимаю что в процессоре нет подобия тех секций, которые есть в ассемблере (text, bss, data). Я говорю про архитектуру amd64, хотя может в других есть?
Я правильно понимаю что в процессоре нет подобия тех секций, которые есть в ассемблере (text, bss, data). Я говорю про архитектуру amd64, хотя может в других есть?
Да, вы правы. Эти секции являются частью формата исполняемых файлов и используются операционной системой при загрузке программы в память. Архитектура amd64, как и большинство других архитектур процессоров, не имеет таких секций.
Я правильно понимаю что в процессоре нет подобия тех секций, которые есть в ассемблере (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).