Почему нам нужно определить раздел .data и .text в сборке?
Я читаю сборку. В книге объясняется, что в памяти компьютера есть раздел .text и .data. В примере в книге также используется следующий исходный код.
[SECTION .data]
[SECTION .text]
так как приведенный выше фрагмент кода написан на сборке, у меня есть вопрос.
Делайте .data и .text коды, разделенные в физической памяти (если да, то почему? и заботится ЦП?)? или просто мы (человек) отделяем их на ассемблере?
Ответы
Ответ 1
Текстовый раздел приложения доступен только для чтения, а Data - нет. Многие OS загружают текстовый раздел в память только один раз независимо от того, сколько раз было запущено приложение. Это уменьшает использование памяти и время запуска и безопасно, потому что код не изменяется.
Раздел данных содержит информацию, которая может быть изменена во время выполнения приложения, и этот раздел должен быть скопирован для каждого экземпляра.