Относительная индексация

При относительной индексации ЦП для определения исполнительного адреса прибавляет содержимое счетчика команд к адресу, содержащемуся в команде. Одноадресная команда LOAD * +100 (знак * или $ означает текущее содержимое счетчика команд) заставляет ЦП вычислить исполнительный адрес путем г; ибавления числа 100 к сдержимому счетчика команд, а затем загрузить в аккумулятор исполнительный адрес. Если бы команда LC)AD* + 100 находилась в ячейке памяти с адресом 2000, то ее действие было бы равноценно действию команды LOAD2100. Как следует из названия, относительная адресация определяет скорее относительный, чем абсолютный адрес текущей команды.

Относительная адресация позволяет перемещать программы в различные области памяти. На рис. 3.10, например, показано, как можно передвинуть в памяти команду ADD и данные на 200 ячеек и при этом сохранить их относительное расположение. Такая программа называется перемещаемой. Перемещаемые программы удобны, так как они могут находиться в любой возможной области памяти и не мешать другим программам.
 

Кроме того, относительная адресация позволяет использовать более короткие адреса, если исполнительный адрес содержится в текущей ячейке программы. Час го используют относительные адреса в командах переходов, так как большинство из них имеют узкий формат.