Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_6_7.doc
Скачиваний:
30
Добавлен:
01.12.2018
Размер:
249.86 Кб
Скачать
  1. Выполнение операций

2. 1. Арифметические операции

В соответствии с табл. 2 (лаб. раб. № 1), описывающей функции АЛУ, в зависимости от кода микрокоманды и наличия переноса (C0 =1) можно выполнить необходимые операции: сложения (см. табл. 2, лаб. раб. №1) и вычитания (I5I3= 000, 001, 010).

2. 2. Логические операции

Логические операции в АЛУ выполняются непосредственно схемой однобайтных логических операций (СОЛО). Существует специальный регистр СОЛО. Перенос С0 в логических операциях не участвует (его значение может

быть любым). Бинарные логические операции присваивают слову значение, получаемое поразрядным применением операций ,, .

Поразрядная конъюнкция используется для выделения любого разряда кодового слова. Один их входов СОЛО используется при этом для подачи специального кодового слова-маски. Пример: маска М=0100, кодовое слово А= а1а2а3а4; МА=0а200. Поразрядная дизъюнкция используется для установки отдельных разрядов или полей в единичное состояние. Операция исключающее ИЛИ (сложение по mod 2) применяется для инверсии бита или кодового слова.

2. 3. Операции сдвига

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

Операцию сдвига выполняет мультиплексор сдвига, коммутируя выходные сигналы PQ3, PR3 , PQ0, PR0. Он выполнен на двух 2-разрядных 4- канальных МПР. Его работой управляют сигнал I7, разрешающий процедуру сдвига. Вид сдвига задается кодом в разрядах S2 и S1 (S2S1 = 00, 01, 10, 11), который определяет номера входов МПР: 00 А0, 01 А1 ….

Сдвиговые операции используются для выравнивания и корректировки порядков, нормализации мантиссы чисел с плавающей запятой, а также при сложении, вычитании, умножении и делении чисел с фиксированной и плавающей запятой. Часто сдвиги используют с целью увеличения или уменьшения кодового слова в два раза за один такт (умножении или делении операнда на два). Пример: В:={0110}=6, B:=R(B)={0011}=3 (6:2=3) - сдвиг вправо; B:=L(B)={1100}=12 (6*2=12) - сдвиг влево.

Механизм сдвига при организации сдвига вправо (R) и влево (L) показан на рис. 3. При сдвиге вправо на один разряд кодовое слово уменьшится в два раза, а влево – увеличится в два раза (см. примеры в табл. 1, 2).

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

Рис. 3. Действие сдвигателя

Циклические и арифметические сдвиги Таблица 1

Сдвиги бывают двух типов: арифметические и логические. При арифметическом сдвиге знаковый разряд не сдвигается; а при логическом сдвиге знаковый разряд обрабатывается, как и числовой. Запись вида R(F)RB или L(F)RB означает, что запись результата в РОН RB идет со сдвигом вправо или влево на один разряд. Запись вида L(F||Q)  RB||Q (см. примеры в табл. 2) означает, что сдвиг влево результата на шине F производится одновременно с результатом, записанным в регистре Q. При этом совокупный код на шине F и в регистре Q рассматривается как код двойной длины. Обычно обозначение RB||Q означает присоединение регистров RB и Q. При этом присоединяемые операнды образуют единый операнд двойной длины.

Сдвиги одинарной и двойной длины Таблица 2

Т ип сдвига определяется мультиплексором сдвига МСС, управляемым разрядами микрокоманды 23 и 19 - S2S1 в соответствии с табл. 3.

Коды управления МСС Таблица 3

Используемый МСС реализует следующие типы сдвига: при S2S1 = 00 логический сдвиг (СЛ), при этом выполняется либо только СЛ(F), либо одновременно, но независимо – СЛ(F) и СЛ(Q). При S2S1 = 01 выполняется циклический сдвиг (СЦ): либо СЦ(F), либо СЦ(F) и СЦ(Q) независимо друг от друга. При S2S1 = 10 выполняется левый или правый циклический сдвиг операнда двойной длины СЦЛ(F||Q) или СЦП(F||Q); при S2S1 = 11 – арифметический сдвиг (СА) операнда двойной длины, левый или правый: САЛ(F||Q) или САП(F||Q). Сдвиг результата на шине F либо сдвиг результата на шине F одновременно с регистром Q определяется приемниками результата согласно табл. 4 (лаб. раб №1) (F/2B, 2FB либо F/2B, Q/2Q; 2FB, 2QQ). Пример приведен в табл. 2.

Структуры сдвигателей Таблица 4

При выполнении сдвиговых операций результат функции АЛУ будет передан на сдвигатель регистра и сдвигатель данных АЛУ (рис. 2), к выходам которых (PQ3, PQ0, PR3, PR0) могут быть подключены СИ Д при положении переключателей МУЛЬТИПЛЕКСОР – 101 (табл. 5, лаб. раб. №1).

В соответствии с табл. 2 в результате выполнения МК0 на СИ Д будет высвечен код 0001 (в положении переключателей МУЛЬТИПЛЕКСОР - 001). В результате выполнения МК1 на индикаторах высвечивается 0010 (в положении переключателей МУЛЬТИПЛЕКСОР – 101). С каждым последующим нажатием кнопки ПУСК индицируются следующие показатели: 0100, 1000, 0001, 0010, 0100 и т.д. При каждом нажатии кнопки ПУСК выполняется функция циклического одинарного сдвига влево. При выполнении циклического одинарного сдвига вправо (МК2) при каждом нажатии кнопки ПУСК на СИ Д будут появляться следующие показания: 1000, 0100, 0010, 0001, 1000 и т. д.

Операции циклического двойного сдвига влево и вправо выполняются аналогично. Последовательность циклических двойных сдвигов влево дает на СИ“D” следующие двойные коды: 0010, 0100, 1000, 0000, 0000, 0000, 0000, 0001, 0010 и т. д. (МК4), а циклических двойных сдвигов вправо: 0000, 0000, 0000, 0000, 1000, 0100, 0010, 0001, 0000 и т. д. Показания 0000, 0000, 0000, 0000, соответствующие нулю, свидетельствуют о том, что выполняется сдвиг двойной длины и кодовое слово при этом проходит еще через дополнительный регистр.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]