ЛР Центральное устройство управления (1075156), страница 4
Текст из файла (страница 4)
б) индекс необходимо размещать в автономном регистре индекса;
в) адрес возврата из подпрограммы – надо разместить в оперативной памяти (для этого можно использовать одно из слов страницы F, например, нулевое слово, ОП [F.0]).
-
Разработать алгоритм программы решения задач (см. рис.4). Предусмотреть ввод параметра n и вывод на дисплей результатов (n и С1).
-
Разработать систему машинных команд, необходимую и достаточную для решения задачи 12. Команды должны быть трехадресными с прямой адресацией. В соответствии с алгоритмом выбрать следующую систему команд (табл. 6). Каждой команде присвоить мнемокод, облегчающий ее понимание, и двоичный четырехразрядный код операции. Неиспользуемые поля команды заполнить нулями. Система команд содержит восемь команд. Для каждой команды разработать микропрограмму. Список допустимых микроопераций приведен в табл. 2.
Рассмотрим перечень микропрограмм:
а) «Ввод» (Вв) – по этой команде байт данных в шестнадцатеричной системе счисления заносится с экрана дисплея в ячейку оперативной памяти по адресу, записанному в поле S3. Микропрограмма этой операции приведена на рисунке 5а;
б) «Переход с возвратом» (ПВ) – используется для обращения к подпрограмме. При этой команде запоминается адрес следующей команды основной программы в ячейке возврата, и управление передается по адресу, указанному в поле S1 команды ПВ. В соответствии с заданием адрес возврата должен храниться в оперативной памяти. Для этой цели удобно использовать страницу памяти F. Для формирования адреса любого слова в странице можно использовать микрооперацию В:= F.R, где F – константа (IIII), а R – содержимое поля R команды ПВ. Так, если в качестве ячейки возврата выбрана ячейка оперативной памяти с адресом F0, то в поле R команды должен быть записан нуль.
Для перехода к подпрограмме необходимо в программный счетчик, расположенный в РОН [1], записать содержимое поля S1 команды ПВ (адрес перехода). Микропрограмма приведена на рисунке 5б. Здесь для формирования адреса ячейки памяти, в которую надо записать адрес возврата, используется микрооперация В:=F.R.
Таблица 6. Система команд
Формат команд | Мнемокод | КОП | Примечание |
1 | 2 | 3 | 4 |
S1 - - | УИ | 0001 | «Установка индекса»
|
S1 - - | ПВ | 0010 | «Переход с возвратом» (переход к подпрограмме)
|
S1 S2 S3 | СЛ | 0011 | «Сложение с модификацией»
ОП[S3+i], i:=i-1 |
S1 - - | ПУ | 0100 |
S1, если i0, PC: = PC+4,если i=0 |
- - - | ПБК | 0101 | «Переход безусловный по косвенному индексу»
|
- - - | Стоп | 0110 | «Останов»
|
- - S3 | Вв | 0111 | «Ввод байта»
|
S1 - - | Выв | 0000 | «Вывод байта»
|
а в
«ВВОД»
УИ
ПВ
б
A:=S1
PA:=A
СТОП
A:=ОП[PA]


з
Дисплей:=A
стоп
ж
B:=РИ

B:=B


B:=F.R

1
PA:=B
A:=S1


A:=ОП[PA]
POH[1]:=A


POH[1]:=A
г д е
Gл ПУ ПБК
Рис. 5 Микропрограмма машинных операций
Эта микрооперация задает четыре старших двоичных разряда адреса шестнадцатеричной константой F(1111), а четыре младших разряда адреса берет из поля R команды ПВ. В нашем случае в поле R должен быть нуль, когда сформируется требуемый адрес;
в) «Установка индекса» (УИ) – используется при работе с массивами, а также при организации циклов. По этой команде значение индекса переписывается из ячейки памяти, адрес которой указан в поле S1, в индексный регистр (рис. 5в);
г) «Сложение с модификацией» (Сл) – команда выполняет операции Сi=Ai+Bi, причем операнды и результат хранятся в памяти. В полях S1, S2 и S3 команды Сл записаны начальные адреса соответствующих массивов А, В и С. Адреса элементов массивов определяются как сумма начального адреса массива и содержимого индексного регистра. При каждом выполнении команды содержимое индексного регистра уменьшается на единицу. В задаче и в машинной программе индексы массивов меняются от единицы до n, а в микропрограмме они должны меняться от нуля до (n-1), чтобы начальный адрес массива в теле команды соответствовал начальному элементу массива (рис. 5г). В микропрограмме используется микрооперация РОН[2]:=А. Она получается из микрооперации РОН [Т]:=РОН [Т]*А, где Т=2 (см. табл. 7) операции пересылки y – (см. табл. 1). Выбор Т=2 и операции пересылки А в РОН [2] выполняются с помощью управляющих сигналов y8, y11, y13,y15. Регистр РОН [2] используется для временного хранения первого операнда.
Примечание. В АЛУ выполняются микрооперации типа W:=X*Y, где X - первый операнд, Y - второй операнд, звездочка - арифметическая операция.
В нашем случае первым операндом будет РОН [Т], а вторым аккумулятор;
д) «Переход условный» (ПУ) – команда анализирует содержимое индексного регистра. Если оно равно нулю, то осуществляется переход к следующей команде, а если не равно, то выполняется переход к команде, адрес которой указан в поле S1 команды ПУ (рис. 5д). В микропрограмме необходимо проанализировать значение индекса на нуль, но признак нуля Z(как и все остальные признаки N, C, P) вырабатываются только в АЛУ, поэтому необходимо значение индекса пропустить через АЛУ. Для этого используется две микрооперации, В:=РИ и В:=В.
Таблица 7. Выбор регистра общего назначения
Управляющие сигналы | Адрес РОН [Т] | |||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
y7 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
y8 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
y9 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
y10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Примечание. Формирование адреса следующей команды происходит вне микропрограммы операции;
е) «Переход безусловный» (ПБК) – команда реализует безусловный переход по косвенному адресу, т.е. по адресу, который хранится в ячейке возврата в оперативной памяти. В качестве ячейки возврата можно использовать любое слова страницы F (адреса от F0 до FF). Номер слова в странице F указывают в поле R команды ПБК (рис. 5е).
ж) «Вывод» (Выв) - по этой команде байт информации из памяти выдается на экран дисплея в шестнадцатеричной системе. Адрес выдаваемого байта указывается в поле S1 (рис. 5ж);