
Первый машинный цикл C
1
, как и следовало ожидать, отведен под выборку команды из памяти. При
этом код операции помещается, как уже говорилось, в регистр команд. Выполнение последовательности
микрокоманд приводит к следующим действиям. В первом такте T
t
содержимое счетчика команд выдается
через буфер шины адреса в шину адреса. Второй такт выделен для представления времени для ответа
памяти. В третьем такте появившиеся данные в шине данных пересылаются в регистр команд. В
четвертом такте выборка команды завершена, операционный код команды передается дешифратору
команд для формирования последовательности микроопераций. При этом получает приращение
содержимое счетчика команд.
Второй машинный цикл соответствует чтению из памяти восьми младших разрядов адреса, которые в
результате выполнения этого цикла должны быть помещены в регистр Z. В первом такте этого цикла
содержимое счетчика команд передается через буфер шины адреса в адресную шину. Во втором такте
микропроцессор ожидает ответ из памяти. В третьем такте содержимое шины данных передается в
регистр Z и счетчик команд опять получает приращение.
Третий машинный цикл аналогичен второму, за исключением того, что из памяти выбираются и
пересылаются в регистр W восемь старших разрядов адреса. Последовательность микроопераций та же.
В четвертом машинном цикле происходит окончательное выполнение команды: аккумулятор
загружается данными из памяти по адресу, записанному в регистрах W и Z.
В первом такте четвертого машинного цикла содержимое регистров W и Z передается через буфер в
шину адреса. Во втором такте предоставляется время для ответа памяти. Наконец, в третьем такте
содержимое шины данных пересылается через буфер в аккумулятор. Выполнение команды полностью
завершено за 13 машинных тактов.
Перейдем теперь к рассмотрению системы команд микропроцессора КР580ИК80А и особенностей их
работы.
4.6. СИСТЕМА КОМАНД И СПОСОБЫ АДРЕСАЦИИ
Система команд микропроцессора КР580ИК80А представлена 244 кодами операций, которые могут
быть расклассифицированы по разным признакам. Наиболее существенными для ознакомления с
особенностями их использования являются следующие три признака: длина команды, или число
занимаемых байтов, функциональный признак, или выполняемые командой операции, и способ адресации.
Полный перечень команд приведен в приложении 1. В таблице приведены символическая запись (мнемокод)
команды, описание выполняемых ею функций, длина в байтах, обозначения изменяемых флагов и число
машинных тактов, занимаемых при ее выполнении. Из 256 возможных кодов (при восьми двоичных разрядах)
не используются следующие 12 кодовых комбинаций (в восьмеричной записи): 010, 020, 030, 040, 050, 060, 070,
313, 331, 335, 355 и 375. Этим и объясняется количество всех команд: 244. Команды в таблице разбиты на три
группы по числу занимаемых байтов: все команды делятся на однобайтовые, двухбайтовые и трехбайтовые.
При этом первый байт всегда отводится под код команды, а второй и третий байты содержат либо данные, либо
адрес, по которому они находятся в памяти (рис. 4.6).
Восьмеричные коды всех однобайтовых, двухбайтовых и трехбайтовых команд приведены соответственно в
табл. 4.1, 4.2 и 4.3. При этом в табл. 4.1 наряду с обычными указаны обобщенные коды, т. е. коды, содержащие
кроме восьмеричных цифр кодовые переменные S, D и А. В табл. 4.1 если код команды содержит только
цифры, это означает, что существует единственная команда с соответствующим кодом. Некоторые коды
кроме цифр содержат буквы: S (первые И команд), D (третья команда) и А (последняя команда). Таким
кодам соответствуют множества команд. При этом каждой команде из первых 11 команд, кроме третьей,
соответствует группа конкретных команд, мнемокод которых вместо символа г (регистр) содержит
обозначения конкретных регистров (В, С, D, Е, Н, L), либо символ памяти (М), либо символ аккумулятора
(А). Соответствующий конкретный восьмеричный код команды вместо символа S должен содержать одну
из цифр: О, 1, 2, 3, 4, 5, 6, 7 соответственно, т. е. символу В в мнемокоде соответствует цифра 0 в
восьмеричном коде, символу С в мнемокоде — цифра 1 в восьмеричном коде и т. д,. . ., символу М в
мнемокоде — цифра 6 в восьмеричном коде и, наконец, символу А в мнемокоде — цифра 7 в
восьмеричном коде. Для третьей команды в табл. 4.1 точно такая же аналогия соблюдается для пар
символов г
ь
г
2
и D, S. Последняя команда таблицы содержит символ А в мнемокоде и в восьмеричном
коде. Она соответствует группе из восьми конкретных команд, в каждой из которых символ А принимает
одно из значений: О, 1, ... ...,7.