Структура основной памяти (ОП)
ОП является адресной памятью, состоит из огромного количества 8-разрядных ячеек, каждая из которых имеет свой уникальный 16-ричный адрес.
Структура ОП приведена на рис. 5.1. Реализация относительной адресации связана с условным разбиением ОП на блоки по 4096 байтов. Справа от структуры ОП в общем виде представлена структура адреса произвольного байта ОП.
Структура адреса ячейки ОП
ХХХХХ ХХХ
XXXXX XXX
|
Смещ. отн. начала бл. или баз. адреса
|
Рис. 5.1. Блочная организация ОП
Формирование адреса осуществляется при помощи двух частей: пять старших битов соответствуют номеру блока, а три младших – смещению относительно начала блока. Начало каждого блока совпадает с адресом ее первого байта, значение которого кратно 4096. Этот адрес получил называние базового. Поскольку объем блока равен 4096, то базовым может считаться адрес. кратный 4096, или адрес, в котором 3 младшие шестнадцатеричные цифры равны 0. Отсчет блоков начинается с 0.
Самые верхние 4096 байтов образуют «0» блок ОП. Понятие базового адреса используется при вычислении абсолютных или исполнительных адресов операндов, размещающихся в ОП. В пределах каждого блока адрес любого байта определяется 12-ти разрядным двоичным или 3-х разрядным 16-ричным числом, которое называется смещением и обозначается в машинных командах латинской буквой «D». Смещение может принимать значение от ООО16 до FFF16. Если при помощи выражения [В] обозначить содержимое регистра СОП, в котором находится значение базового адреса, то значение любого абсолютного адреса «А» ОП можно определить по формуле
А=[В]+D, (5.1)
где А, [В] и D представляются в 16-ричной системе счисления.
Если программы и данные располагаются в нескольких блоках основной памяти, то в регистрах общего назначения приходится хранить несколько базовых адресов (БА). Местом хранения базовых адресов являются регистры общего назначения СОП. Применение относительной адресации упрощает процесс перемещения программ в ОП. Для этого достаточно поменять значения базовых адресов в регистрах СОП. Распределение ОП и назначение БА осуществляется автоматически управляющей программой операционной системы. При программировании на машинно-ориентированных языках (Ассемблерах) программистам, как правило, самим приходится назначать базовые адреса и распределять основную память. Эти операции приходится выполнять и при составлении программ для микроконтроллеров. Назначение нескольких базовых адресов для одной и той же программы происходит в тех случаях, когда объем программы и данных требуют объема, большего, чем 4096 байтов. Распределение ОП между несколькими программами, исходя из блочной организации памяти, осуществляется исключительно блоками со стандартными объемами 4096 байтов. При оперировании с «данными», имеющими длины полуслов, слов или двойных слов, в качестве абсолютных адресов в командах выступают адреса самых младших байтов полей ОП, закрепленных за этими переменными.
Дата добавления: 2016-03-15; просмотров: 959;