Составители:
45
6 if(неCW) goto 3
7 ACC=B; B=ACC; PSW(“mul”);
8 Ram[Acc]=ACC;
9 Ram[Bb]=B;
10 Ram[Psw]=PSW,
Микропрограмму интерпретируем конечным автоматом (КА). Для
запуска КА формируется признак А=1; При этом выделяем часть
микропрограммы, которую относим к БМУ и часть относим к схеме КА.
БМУ:
RAMM=ADC[Code[PC++]];
Wrk=Acc; Acc=0;
Wrk1=-8; A=1;
ACC=B; B= ACC; PSW(mul);
Ram[Acc]=ACC;
Ram[Bb]=B;
Ram[Psw]=PSW,
Автомат
0 if(/A) goto 0 //микрокоманда ожидания запуска
1. Ra=Acc; Rb=Wrk; СW=0; // выборка операндов
2 if(B[0]) goto 3 else goto 4;
3 ACC=Ra+Rb; СС=С;
4. Sr(Acc.B); Wrk1++; CW=(Wrk1>0xFF);;
5 if(не
CW) goto 1
6. A=0; goto 0; //возврат к БМУ и завершение работы КА
Каждая i-ая микрокоманда KA обозначается как состояние Qi.
Состояния нумеруются порядковыми номерами микрокоманд, Q0-начальное и
Q6-конечное. Каждому состоянию Qi ставим в соответствие код
функциональной микрокоманды из общего списка микрокоманд в DCM.
Система уравнений переходов и адресации микрокоманд в КА с естественным
кодированием состояний:
q0= (Q0&A) v (Q2 & B[0]) v Q4
q1= Q1 v Q2 & B[0]) v Q5 & CW
q2= Q3 v Q2 & /B[0] v Q4 v Q5 & CW
Каждое состояние
формирует код функциональной микрокоманды или
адрес соответствующей структурной микрокоманды в DCM.
0 0
1. Ra=Acc; Rb=Wrk; СW=0; // выборка операндов
2 0
3 ACC=Ra+Rb; СС=С;
4. Sr(Acc.B); Wrk1++; CW=(Wrk1>0xFF);;
5 0
6. A=0;
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »