Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СиФО часть 5.1.doc
Скачиваний:
52
Добавлен:
15.09.2014
Размер:
771.07 Кб
Скачать

5.5.4. Команды формата “память - непосредственный операнд” (si)

Команды данного формата имеют вид, показанный на рис. 5.23.

В данной структуре адрес первого операнда определяется содержимым полей B1иD1:

Аисп = <B1> + D1.

Второй операнд I2располагается в одном из полей команды. Как правило, оба операнда имеют длину 1 байт, а результат обработки данных помещается по месту первого операнда.

5.5.5. Команды формата “память - память” (ss)

Команды формата SSприменяются для операций над словами переменной длины. Причём оба обрабатываемых операнда располагаются в памяти и адресуются с помощью базовой адресации рис. 5.24.

Адрес первого операнда (точнее младшего его байта) определяют поля B1

и D1, а адрес второго –B2 иD2. В поляхL1 иL2в шестнадцатеричном коде указываются длины операндов. При этом длина первого операнда может быть отлична от длины второго и колебаться в пределах от 1 до 16 байт. В командах логической обработки данных оба операнда имеют одинаковую длинуL, изменяющуюся от 1 до 256 байт. ПоляL1,L2, иLпредполагают обработку операндов длинойL+1 байт. Другими словами, они определяют, сколько байтов информации следует прочитать из ОЗУ после выборки первого байта, адресуемого полямиBиD.

Рассмотрим основные этапы выполнения команды SSи взаимосвязь алгоритма и структуры процессора, приведенной на рис. 5.25.

Итак, на первом этапе выполняется процедура формирования адресов первого и второго операндов. Для этого содержимое полей B1иB2передаётся на адресные входы РЗУ, и базовые адреса поочерёдно считываются (через АЛУ) в соответствующие регистры адреса. Формирование адреса первого операнда выполняется по правилу:RG А1 :=DO2(РЗУ) +D1.

При этом коммутация поля D1 на вход АЛУ осуществляется сигналом управленияy3, а базовый адрес передаётся под действием сигналовy4,y8,y9.

Содержимое RG А2вычисляется аналогично, только с учётом разрядов поляD2 (сигналы коммутацииy6,y5иy7,y10):

RG А2 :=DO1+D2.

Вспомогательные регистры процессора RG А1иRG А2обладают возможность инкрементирования своего содержимого под действием сигналов УА. Предельные значения адресов контролируются схемами Ст 2, которые при обнулении вырабатывают признаки нуляzдля схемы УА.

Следует помнить, что разбиение процесса выполнения команды на отдельные этапы осуществляется чисто условно; в случае необходимости составляющие алгоритма могут выполняться параллельно или последовательно по усмотрению разработчика архитектуры.

На следующем этапе выполняется процесс чтения из ОЗУ первого и второго операндов (точнее их младших байтов) и их обработка в арифметико- логическом устройстве.

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

Очередной (условный) этап вычислений начинается с увеличения содержимого RG А1иRG А2. После этого процедура обработки повторяется по указанному алгоритму.

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

Обработка операндов по законам булевой алгебры осуществляется по тем же алгоритмам, однако для контроля длины данных здесь используется один счётчик удвоенной разрядности, принимающий при отработке команды в свои разряды содержимое поля: .