Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Адресное пространство памяти представляет собой последовательность байтов. Исторически сложилось так, что первые машины имели адресную шину из 16 линий (16-разрядную), которая позволяла адресоваться к объему памяти до 216=64 Кб. Позже адресная шина ПК стала состоять из 20 линий. 20 бит позволяли адресоваться к 220=1 Мб, но сами машины продолжали оставаться 16-разрядными. На этом этапе память была разбита на сегменты по 64 Кб (сегментирована). И когда в программе адресовались к памяти, то указывали номер сегмента (его адрес) и смещение внутри сегмента от его начала.
На выходе из системной шины появилось устройство формирования адреса, а в процессоре появился сегментный регистр.
Сегмент – участок памяти длиной 64 Кб, который может начинаться только с адреса, кратного 16 (т. е. 0, 16, 32, 48 и т. д.). Фрагмент памяти в 16 байт называется параграфом (говорят, что сегмент всегда выровнен на начало параграфа). Смещение – указывает, сколько байт от начала сегмента нужно отступить, чтобы обратиться к нужному адресу.
20-разрядный адрес получается следующим образом: содержимое сегмента сдвигается влево на четыре разряда, в свободные правые разряды записываются нули и результат складывается со смещением.
С появлением 32-разрядных машин сегментирования памяти не стало, но форма записи сохранилась.
Во всех современных языках программирования, в том числе и в Паскале, есть специальный тип данных, который позволяет получить значение адреса (как полного, так и его частей).
Дата публикования: 2014-10-25; Прочитано: 331 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!