Способы адресации
Введём следующее определение. Способ адресации – это способ задания операндов внутри машинной команды. Другими словами это правила, по которым заданные в команде (двоичные) числа определяют местонахождение и значение операндов для данной команды. Как правило, способ адресации операндов определяется только кодом операции команды. Для лучшего понимания этого понятия рассмотрим операцию сложения двух чисел в одноадресной ЭВМ. Мнемоника кодов операций будет указывать на способ адресации.
· Прямой способ адресации.
СЛ | S := S + <2> |
При этом способе адресации (только этот способ мы использовали до сих пор) число на месте операнда задаёт адрес ячейки основной памяти, в котором и содержится необходимый в команде операнд. Мы будем в угловых скобках обозначать содержимое ячейки основной памяти с данным адресом. Так, в приведённом выше примере <2> обозначает содержимое ячейки с адресом 2. В этой ячейки, конечно же, скорее всего не хранится число 2.
· Непосредственный способ адресации.
СЛН | S := S + 2 |
При таком способе адресации поле адреса команды содержит, как говорят, непосредственный операнд. Разумеется, такие операнды могут быть только (неотрицательными) целыми числами, по длине не превышающими максимального значения в поле адреса.
· Косвенный способ адресации.
СЛК | S := S + <<2>> |
Здесь число на месте операнда задаёт адрес ячейки памяти, содержимое которой, в свою очередь, трактуется как целое число – адрес необходимого операнда в памяти ЭВМ.
В качестве примера выполним несколько команд сложения с различными способами адресации для одноадресной ЭВМ и рассмотрим значение регистра-сумматора S после выполнения этих команд (см. рис. 4.1). Справа на этом рисунке показаны первые ячейки памяти и хранимые в них целые числа.
. . . | Адрес | Значение | ||
СЧ 0; S := 0 | ||||
СЛ 2; S := 3 | ||||
СЛН 2; S := 5 | ||||
СЛК 2; S := 13 | ||||
. . . | . . . | . . . | ||
Рис. 4.1. Значение регистра сумматора после выполнения команд сложения с различными способами адресации. | ||||
Упражнение. Добавьте в язык учебной машины УМ-3 новую команду пересылки, которая использует косвенную адресацию по своему третьему адресу, и покажите, что в этом случае можно обрабатывать массивы без использования самомодифицирующийся программ.
Дата добавления: 2015-10-05; просмотров: 819;