Проектирование ЭВМ. Довгий П.С - 38 стр.

UptoLike

38
Функциональная микропрограмма умножения:
0 RAMM=ADC[Code[PC++]]; //выборка команды
1 Wrk=Acc; Асс=0; //размещение операндов, в Wrk множимое
2 Wrk1= -8; //Wrk1-счетчик циклов,
3 Ra=Acc; Rb=Wrk; СW=0; //выборка операндов, CW- признак завершения цикла
4 if(B[0]) {Acc=Ra+Rb; CC=C;} // B[0]-цифра множителя, СС- признак переноса
5 Sr(CC.Acc.B); Wrk1++; CW=(Wrk1>0xFF); //сдвиг произведения и множителя
6 if(неCW) goto 3 //повторение цикла, если счетчик не сбросился
7 ACC=B; B=ACC; PSW(“mul”); //размещение результата по спецификации mul ab
8 Ram[Acc]=ACC; //сохранение результата в теневом регистре
9 Ram[Bb]=B; //сохранение результата в теневом регистре
10 Ram[Psw]=PSW, //Psw-адрес теневого регистра
Комментарии к отдельным микрокомандам.
1. Запись осуществляется по L/H фронту общего синхросигнала.
Параллельное исполнение Acc Wrk, 0 Acc.
2. Формирование константы (-8) можно соединить с другими,
обозначенными в блоке констант рис. 4.5, и выбирать из lpm_ROM.
Таблица 4.4. Константы в ROM
Адрес Константа Содержание Мнемоника Применение
0 00 0 Zero сброс регистров
1 FFh -1 Mone
2 F8h -8 Moct счетчики в mul, div
3 20h Abi адрес бита в Data
4 07 Sp0 адрес в SP при сбросе
5. Sr(СС.Acc.B), CW.Wrk1++; биты переполнения CC, CW
рассматриваются как расширение формата операндов.
Параллельно выполняются две микрооперациисдвиг и инкремент Wrk.
Сдвиг вправо регистров ACC и B разрешен общим сигналом управления.
При этом вход последовательного сдвига B соединен жестко с выходом A[0].
Переполнение сложения в АЛУ в предыдущей микрокоманде из СС
передается на вход последовательного сдвига АСС.
Используется триггер CW
для сохранения выходного переноса CW при
добавлении единицы к Wrk1.
7. Передачи выполняются параллельно по двум шинам BasB и BasC,
новые состояния регистров устанавливаются по фронту синхросигнала clk.
В PSW бит С=0, признак OV=1, если B!=0. определяется P, остальные
биты не изменяются.
Функция PSWС(“mul”) формирует эти признаки в Си, в MaxPlus проекте
PSW устанавливаются схемами блока обработки битов BIT.