Возможные режимы задаются с помощью переключателей О, 1, 2, 3 для подачи сигналов 0 ("земля") или 1 (+5 В) на входы управления SO, SI, S2, S В положении переключателя М, показанном на рис. 9.53 (сигнал 0 на входе М), выполняются 16 арифметических операций (16 комбинаций сигналов SO...S3) с учетом переноса по входу Сп (переключатель С в показанном на рис. 9.53 положении) или без учета переноса (сигнал 0 на входе Сп переключателя С). При переводе ключа М в другое положение (на входе М сигнал 1) выполняются 16 логических операций, задаваемых теми же переключателями 0
В разд. 9.2 уже упоминалась ИМС арифметико-логического устройства (АЛУ) 74181 (К155ИПЗ) в связи с возможностью использования ее в качестве четырехразрядного сумматора. Там же указывалось, что эта ИМС обеспечивает 32 режима работы АЛУ в зависимости от состояния управляющих сигналов на входах М, SO Показанная на рис. 9.53 схема на базе этой ИМС позволяет оперативно реализовать все упоминавшиеся режимы.
Значения четырехразрядных операндов А и В задаются с помощью генератора слова и в шестнадцатеричном коде отображаются на алфавитно-цифровых индикаторах. На выходах FO...F3 результат суммирования отображается индикатором F. При коде 1111 на этих выходах и при равенстве операндов выход А=В переводится в единичное состояние. Поскольку этот выход представляет собой каскад с открытым коллектором, то на него подается питание +5 В через резистор 1 кОм. Выход А=В совместно с выходом переноса CN+4 и выходом Р подтверждения переноса используются для формирования признаков А>В и А<В с помощью дополнительных логических элементов Ul, U2, U
Логические функции (на входе М сигнал 1); выполняются поразрядно, переносы не учитываются.
Изменяя состояния сигналов на управляющих входах, можно промоделировать большинство функций АЛУ, используемых в микропроцессорах. Приведем перечень этих функций.
0001 — (А+В)'— поразрядная операция ИЛИ с инверсией над операндами А и В;
Код 0000 на входах S3, S2, SI, SO; при этом выполняется логическая функция А' — данные со входов А передаются на выходы F с инверсией, может быть использована в команде СМА (здесь и далее используется мнемоника команд микропроцессоров семейства 80хх фирмы Intel).
ООН — 0 — нет операции;
0010 — A'B — операция И инвертированного операнда А и операнда В;
0101 — В'— инверсия операнда В;
0100 — (АВ)' — операция И с инверсией;
0111 — АВ'— операция И над операндами А и инверсией В;
ОНО — АФВ — операция Исключающее ИЛИ, команда XRA;
1001 — (А+В)' — операция ИЛИ с инверсией;
1000 — А'+В — операция ИЛИ над инверсией А и операндом В;
1011 — АВ — операция И, команда ANA;
1010 — В — передача на выход операнда В;
1101 — А+В' — операция ИЛИ над инверсией В и операндом А;
1100—1;
1111 — А — передача на выход операнда А.
1110 — А+В — операция ИЛИ, команда ORA;
0000 — А — передача на выход операнда (А+1 — суммирование операнда с 1 переноса, команда инкремента).
Арифметические операции (М=0) без переноса (Сп=1) и с переносом (Сп=0, данные приводятся в круглых скобках):
0010 — А+В' — операция суммирования операнда А с инверсией операнда В без учета переноса ((А+В')+1 — то же, но с учетом переноса);
0001 — А+В — операция суммирования без учета переноса, команда ADD ((A+B)+1 — суммирование с учетом переноса, команда ADC);
0100 — А+АВ' (А+(АВ)'+1). Далее мы от комментариев воздержимся в надежде, что из вышеизложенного все и так очевидно;
ООН — -1 (0);
ОНО — А-В-1, команда SBB (А-В, команда SUB);
0101 — (А+В)+АВ'((А+В)+АВ'+1);
1000 — А+АВ(А+В+1);
01Н—АВ'-1((АВ)');
1010 — (А+В')+АВ ((А+В')+АВ+1);
1001 — А+В, команда ADD (A+B+1);
1100 — А+А(А+А+1);
lOH-AB-l(AB);
1110 — (А+В')+А ((А+В')+А+1);
1101 — (А+В)+А((А+В)+А+1);
Контрольные задания
1111-А-1(А).
Дополните операции без комментариев описанием выполняемых ими функций.
Проведите моделирование всех перечисленных выше режимов АЛУ (рис. 9.53), предварительно составив неповторяющиеся комбинации на выходе генератора слова.