Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Баула.doc
Скачиваний:
112
Добавлен:
28.05.2015
Размер:
1.82 Mб
Скачать

4.4. Способы адресации

Введём следующее определение. Способ адресации– это способ задания операндов внутри машинной команды. Другими словами это правила, по которым заданные в команде (двоичные) числа определяют местонахождение и значениеоперандовдля данной команды. Как правило, способ адресации операндов определяется только кодом операции команды. Для лучшего понимания этого понятия рассмотрим операцию сложения двух чисел в одноадресной ЭВМ. Мнемоника кодов операций будет указывать на способ адресации.

  • Прямой способ адресации.

СЛ

2

S := S + <2>

При этом способе адресации (только этот способ мы использовали до сих пор) число на месте операнда задаёт адресячейки основной памяти, в котором и содержится необходимый в команде операнд. Мы будем в угловых скобках обозначатьсодержимоеячейки основной памяти с данным адресом. Так, в приведённом выше примере<2> обозначает содержимое ячейки с адресом 2. В этой ячейки, конечно же, скорее всего не хранитсячисло2.

  • Непосредственный способ адресации.

СЛН

2

S := S + 2

При таком способе адресации поле адреса команды содержит, как говорят, непосредственныйоперанд. Разумеется, такие операнды могут быть только (неотрицательными) целыми числами, по длине не превышающими максимального значения в поле адреса.

  • Косвенный способ адресации.

СЛК

2

S := S + <<2>>

Здесь число на месте операнда задаёт адрес ячейки памяти, содержимое которой, в свою очередь, трактуется как целое число – адрес необходимого операнда в памяти ЭВМ.

В качестве примера выполним несколько команд сложения с различными способами адресации для одноадресной ЭВМ и рассмотрим значение регистра-сумматора S после выполнения этих команд (см. рис. 4.1). Справа на этом рисунке показаны первые ячейки памяти и хранимые в них целые числа.

. . .

Адрес

Значение

СЧ 0; S := 0

000

0

СЛ 2; S := 3

001

2

СЛН 2; S := 5

002

3

СЛК 2; S := 13

003

8

. . .

. . .

. . .

Рис. 4.1. Значение регистра сумматора после выполнения команд

сложения с различными способами адресации.

Упражнение. Добавьте в язык учебной машины УМ-3 новую команду пересылки, которая использует косвенную адресацию по своему третьему адресу, и покажите, что в этом случае можно обрабатывать массивы без использования самомодифицирующийся программ.

4.5. Многообразие форматов данных

Современные ЭВМ позволяют совершать операции над целыми и вещественными числами разной длины. Это вызвано чисто практическими соображениями. Например, если нужное нам целое число помещается в один байт, но неэкономно использовать под его хранение два или более байта. Во избежание такого неоправданного расхода памяти введены соответствующие форматы данных, отражающие представление в памяти ЭВМ чисел разной длины. В зависимости от размера числа, оно может занимать 1, 2, 4 и более байт. Приведённая ниже таблица иллюстрируетмногообразие форматов данных (для представления целых чисел).

Размер (байт)

Название формата

1

Короткое

2

Длинное

4

Сверхдлинное

Многообразие форматов данных требует усложнения архитектуры регистровой памяти. Теперь регистры должны уметь хранить и обрабатывать данные разной длины.