Описание микроопераций
Микрооперация осуществляет некоторое элементарное преобразование над данными. Это преобразование может быть логическим (выполняется над операндом поразрядно), арифметическим или функциональным. Например, это может быть сдвиг, операция счета, передача из одного регистра в другой, операции «логическое ИЛИ» над двумя операндами. Микрооперация описывается микрооператором, описание это выглядит так
, где
G – метка микрооперации,
‘:’ – разделитель,
остальное – микрооператор.
Правая часть микрооператора, после знака ‘:=’, называется формулой микрооператора.
Знак ‘*’ – знак, определяющий преобразование над данными, которое осуществляет данная микрооперация.
Действие микрооператора состоит в том, что в конце такта выполнения микрооперации в регистре (на шине и другие), описанном в левой части микрооператора, устанавливается слово, полученное в результате преобразования над начальными значениями операндов, указанных в формуле микрооператора. В частном случае, если микрооперация состоит в передаче слова, формула микрооператора содержит лишь описание слова, точнее, регистра (или части регистра) из которого происходит передача.
Пример: Прием из регистра команды в регистр адреса РгАвторого операнда А2можно представить в виде:
Или в более простой форме:
На схеме жирной стрелкой показан управляющий сигнал, вызывающий выполнения данной микрооперации. Управляющий сигнал принимает только два значения: 1 – микрооперация возбуждается, 0 – микрооперация не возбуждается. Один управляющий сигнал может инициировать выполнение нескольких микроопераций. Тогда микрооператоры, описывающие последние, записываются подряд и отделяются друг от друга запятыми.
Пример:
В одном такте выполняется прием в регистр В содержимого счетчика команд и прием содержимого регистра D в счетчик команд. Точка с запятой разделяет микрооператоры, выполняемые в разных тактах.
Рассмотрим еще несколько примеров микроопераций.
Конкатенация или составление слова.
В регистр В передается слово, отдельные разряды которого соответствуют содержимому некоторых разрядов РгА, Сч, триггера переполнения (ТгП) и константе 0.
Сдвиг.
Различают операции арифметического, логического и циклического сдвига.
В описаниях языка микроопераций сдвиги имеют следующие обозначения СдвА, СдвЛ, СдвЦ. Ниже описана микрооперация арифметического сдвига содержимого регистра С на 4 разряда вправо:
Операция арифметического сдвига содержимого регистра D на 3 разряда влево: .
При арифметическом сдвиге знаковый разряд не сдвигается. Освобождающиеся при сдвиге разряды заполняются нулями, а биты, выдвигающиеся из регистра, теряются. При логическом сдвиге сдвигаются все разряды кода, включая знаковый разряд. При циклическом сдвиге крайне разряды регистра соединяются между собой так, что выдвигающиеся из крайнего разряда регистра биты, поступают в другой крайний разряд.
Дата добавления: 2016-04-11; просмотров: 826;