У програмуванні сегмент коду, також відомий як текстовий сегмент або просто текст, — це частина об'єктного модуля або відповідна секція віртуального адресного простору програми, яка містить виконувані інструкції.
Сегмент Термін «сегмент» походить від сегмента пам’яті, історичного підходу до керування пам'яттю, який був витіснений сторінковою організацією пам’яті. Коли програма зберігається в об’єктному файлі, сегмент коду є частиною цього файлу; коли завантажувач розміщує програму в пам'яті, щоб її можна було виконувати, виділяються різні області пам’яті (зокрема, як сторінки), що відповідають як сегментам в об’єктних файлах, так і сегментам, необхідним лише під час виконання. Наприклад, сегмент коду об’єктного файлу завантажується у відповідний сегмент коду в пам’яті.
Сегмент коду в пам’яті зазвичай доступний лише для читання та має фіксований розмір, тому у вбудованих системах його зазвичай можна розмістити в пам’яті лише для читання (ROM), без необхідності завантаження. Якщо сегмент коду не є доступним лише для читання, відповідна архітектура підтримує самопереробний код. Код із фіксованим розташуванням або позиційно-незалежний код може спільно використовуватися в пам’яті кількома процесами в системах із сегментованою або сторінковою організацією пам’яті. Як область пам’яті, сегмент коду може бути розміщений нижче купи або стека, щоб запобігти перезапису його переповненнями купи та переповненнями стека.
Див. також Сегмент даних .bss
Примітки