Доброе время суток, через несколько дней у меня экзамен. Помогите разобраться.
Вот вопрос: "Понятие адреса памяти, сегмента, смещения, нормализованного адреса.
Распределение памяти CMA: cегмент кода программы, сегмент данных, стек, динамическая память (куча).
Типы указатель (Pointer) и ссылка (^ тип)"
Как я понимаю:
Адрес - это номер ячейки в сегменте данных(все оперативной области ПК), он состоит из сегмента и смещения.
В свою очередь сегмент - часть оперативной памяти, не превышающая 64 Кбайта и начинающаяся с числа кратного 16. А смещение показывает в каком месте сегмента хранится заданный адрес(то есть, сколько надо пройти от начала сегмента до нужной ячейки в этом сегменте).
Сегмент кода программы-место в сегменте, отведенное под сам код проги.
Сегмент данных-это непрерывная область оперативной памяти пк.
Стек-простейшая динамическая структура. стек придерживается принципа ЛИФО(ласт ин фёст аут). Выборка и добавление элемента в стек происходит в одном месте.
Динамическая память(куча)- это вся оперативная память ПК, за вычетом сегмента(64), смещения и тела проги.
Типы указателей: Указатель - это переменная, которая хранит адрес в качестве своего значения.
Они(Указатели) бывают типизированные и нетипизированные.
Типизированные - ссылка(^). Пример:
var a : ^real;
b : ^integer;
Типизированный указатель ссылается на какой то определенный тип.
Нетипизированный ссылается на неопределенный.
var c : pointer;
a нельзя присвоить b, для этого необходимо сначала c:=b, а потом a:=c;
Все ли я правильно написал? И что такое нормализированный адрес?
Очень хочется узнать ваше мнение!!!
![]() |