АДРЕСАЦИЯ ДАННЫХ - часть 2
Примем также, что в ячейке памяти с адресом 30 хранится число 10. Тогда процессор «Е97», выполняя команду, к имеющемуся в R3 значению 6 прибавит число из ячейки 30, на которую указывает R2, и результат операции - 16 - занесет в R3.
И, наконец, рассмотрим способы адресации по программному счетчику PC. Поскольку в этом случае регистр, по которому производится адресация, уже однозначно определен, освобождаются два младших бита операнда, которые можно использовать для других целей. В связи с этим удается получить четыре различных способа адресации по счетчику:
11 00 - резерв;
11 01 - операндом служит константа, входящая в команду;
11 10 - операнд извлекается из ячейки ОЗУ, адрес которой входит в команду;
1111-резерв.
Итак, в «Е97» существует два метода адресации по PC, соответствующих шест-надцатеричным кодам D и Е в качестве операнда. Изучим их на примерах. Команда, состоящая из двух слов
02D1
0020
выполняет операцию Rl + 20 => Rl следующим образом: к текущему значению Rl прибавляется извлеченное из команды число 20 и результат помещается в Rl. Если первоначальное значение Rl было, скажем, F0, то в результате операции в Rl запишется 110.
Рассмотрим еще одну команду с адресацией по PC:
021Е
0020
выполняющую операцию (20) + Rl => (20) так: к числу, хранящемуся в ячейке памяти 20, прибавляется значение Rl. В случае, когда Rl = F0, a (20) = 40, ответ будет: (20)= 130.
На этом рассказ о методах адресации можно было бы и закончить, если бы не наличие в командах модификатора, хранящегося в первой цифре шестнадцатерич-ного представления команды. Его значение также может существенно влиять на извлечение данных и запись результата.
Во всех приведенных в данном пункте примерах МОД = 0 и, следовательно, не оказывает влияния на расшифровку и выполнение операции. Если же он имеет ненулевое значение, необходимо дополнительно учитывать и этот фактор.
Модификатор состоит из четырех битов, причем два старших отвечают за «переключением бант/слово, а два младших - за особый способ представления данных, называемый «короткой константой».