В вычислительной технике сегмент кода , также известный как текстовый сегмент или просто текст , представляет собой часть объектного файла или соответствующий раздел виртуального адресного пространства программы , который содержит исполняемые инструкции . [1]
Термин «сегмент» происходит от слова « сегмент памяти» , который представляет собой исторический подход к управлению памятью , на смену которому пришла страничная организация памяти . Когда программа хранится в объектном файле, сегмент кода является частью этого файла; когда загрузчик помещает программу в память для ее выполнения, выделяются различные области памяти (в частности, в виде страниц), соответствующие как сегментам объектных файлов, так и сегментам, необходимым только во время выполнения. Например, сегмент кода объектного файла загружается в соответствующий сегмент кода в памяти.
Сегмент кода в памяти обычно доступен только для чтения и имеет фиксированный размер, поэтому во встроенных системах его обычно можно поместить в постоянное запоминающее устройство (ПЗУ) без необходимости загрузки. Если сегмент кода не доступен только для чтения, то конкретная архитектура допускает самомодифицирующийся код . Код с фиксированной или независимой от позиции код может совместно использоваться в памяти несколькими процессами в системах с сегментированной или страничной памятью. [1] [2] В качестве области памяти сегмент кода может быть помещен ниже кучи или стека, чтобы предотвратить его перезапись в результате переполнения кучи и стека . [3]