Структура основной памяти (ОП)

ОП является адресной памятью, состоит из огромного количества 8-разрядных ячеек, каждая из которых имеет свой уникальный 16-ричный адрес.

Структура ОП приведена на рис. 5.1. Реализация относительной адресации связана с условным разбиением ОП на блоки по 4096 байтов. Справа от структуры ОП в общем виде представлена структура адреса произвольного байта ОП.

Рис. 5.1. Блочная организация ОП

Формирование адреса осуществляется при помощи двух частей: пять старших битов соответствуют номеру блока, а три младших – смещению относительно начала блока. Начало каждого блока совпадает с адресом ее первого байта, значение которого кратно 4096. Этот адрес получил называние базового. Поскольку объем блока равен 4096, то базовым может считаться адрес. кратный 4096, или адрес, в котором 3 младшие шестнадцатеричные цифры равны 0. Отсчет блоков начинается с 0.

Самые верхние 4096 байтов образуют «0» блок ОП. Понятие базового адреса используется при вычислении абсолютных или исполнительных адресов операндов, размещающихся в ОП. В пределах каждого блока адрес любого байта определяется 12-ти разрядным двоичным или 3-х разрядным 16-ричным числом, которое называется смещением и обозначается в машинных командах латинской буквой «D». Смещение может принимать значение от ООО16 до FFF16. Если при помощи выражения [В] обозначить содержимое регистра СОП, в котором находится значение базового адреса, то значение любого абсолютного адреса «А» ОП можно определить по формуле

А=[В]+D, (5.1)

где А, [В] и D представляются в 16-ричной системе счисления.

Если программы и данные располагаются в нескольких блоках основной памяти, то в регистрах общего назначения приходится хранить несколько базовых адресов (БА). Местом хранения базовых адресов являются регистры общего назначения СОП. Применение относительной адресации упрощает процесс перемещения программ в ОП. Для этого достаточно поменять значения базовых адресов в регистрах СОП. Распределение ОП и назначение БА осуществляется автоматически управляющей программой операционной системы. При программировании на машинно-ориентированных языках (Ассемблерах) программистам, как правило, самим приходится назначать базовые адреса и распределять основную память. Эти операции приходится выполнять и при составлении программ для микроконтроллеров. Назначение нескольких базовых адресов для одной и той же программы происходит в тех случаях, когда объем программы и данных требуют объема, большего, чем 4096 байтов. Распределение ОП между несколькими программами, исходя из блочной организации памяти, осуществляется исключительно блоками со стандартными объемами 4096 байтов. При оперировании с «данными», имеющими длины полуслов, слов или двойных слов, в качестве абсолютных адресов в командах выступают адреса самых младших байтов полей ОП, закрепленных за этими переменными.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: