
Глава пятая
структура
машинных команд
Машинная команда представляет собой код, определяющий как операцию, исполняемую вычислительной системой, так и данные, участвующие в этой операции, где операция преобразование данных, выполняемое вычислительной системой под управлением одной команды в течение одного или более тактов сигналов синхронизации.
Данные, представленные в дискретной форме, при произвольном их кодировании подвергаются двум основным видам воздействий: преобразованию и передаче. Преобразование дискретных данных выполняется при помощи арифметических, логических и специальных действий над частью слова, над отдельным словом или над совокупностью слов. Действие передачи дискретных данных осуществляется в пространстве и во времени. Передача данных в пространстве осуществляется как между элементами, узлами и блоками одной вычислительной системы, так и между различными вычисли-тельными системами, а передача во времени представляется как хранение данных в запоминающих устройствах (ЗУ) различного типа.
В качестве ЗУ для хранения программы, выполняющейся в текущий момент времени, используется оперативное запоминающее устройство (ОЗУ) статического типа (энергозависимое) с наименьшей адресуемой единицей информации один байт.
Микропроцессор (микроконтроллер) при помощи системы структурированных машинных команд, объединённых алгоритмом в программу, выполняет все основные виды воздействий над дискретными данными, помещёнными в вычислительную систему.
-
Характеристики машинных команд
Машинная команда (более широкое определение) представляет собой код, кратный единице адресуемого пространства ОЗУ, приведенный в двоичной системе счисления и задающий единственно возможную последовательность действий управляющего блока микропроцессора последовательность микрокоманд. В целом машинная команда определяет вид операции, исполняемой в данном цикле микрокоманд. Машинная команда, представленная последовательностью микрокоманд, содержит характеристику двух операндов, задающих типы узлов операционного блока микропроцессора, которые участвуют при исполнении данной команды. Кроме того, код машинной команды содержит также в явной или в неявной форме следующие указания:
-
где расположены операнды (для выполнения данной команды);
-
куда поместить результат, при его наличии, после выполнения данной команды;
-
каким будет адрес следующей исполняемой команды.
Микрокоманда с позиции кодирования машинных команд элементарное действие микропроцессора, выполняющееся в течение одного или нескольких тактов сигналов синхронизации, которое невозможно разделить на более простое. Микрокоманда позволяет выполнять:
-
вычисление адреса расположения операнда или машинной команды;
-
преобразование или перемещение данных;
-
формирование или проверку условия ветвления или состояния операндов;
-
фиксацию состояния признаков результатов вычислений (при необходимости).
Операнд двоичное число, подвергающееся операционному преобразованию, которое выполняется микропроцессором при исполнении одного кода машинной команды. При исполнении машинной команды выполняется преобразование одного операнда независимо от количества операндов, указанных в коде данной команды. В качестве операндов используются:
-
одно или два числа, над которыми выполняется преобразование;
-
параметр внутренней характеристики микропроцессора;
-
константа для перемещения;
-
результат преобразования.
Существует два способа кодирования машинных команд, объединяющая особенность которых разбиение каждой машинной команды на последовательность микрокоманд.
При первом способе кодирования каждая машинная команда содержит в своём коде последовательность всех микрокоманд, реализованных в данном микропроцессоре. Уровень логической 1 определяет необходимость в исполнении каждой микрокоманды. Такое кодирование машинных команд получило название горизонтальное. При количестве микрокоманд, превышающем сотню, каждый код машинной команды при горизонтальном кодировании становится громоздким и малоэффективным и в настоящее время практически не используется.
При втором способе кодирования каждой машинной команде присваивается порядковый номер, и именно порядковый номер определяет требующиеся микрокоманды при выполнении. Такое кодирование машинных команд получило название вертикальное. При вертикальном способе кодирования существует возможность создания машинных команд различной длины, явно не указывая при этом используемые микрокоманды. Вертикальное кодирование широко используется в настоящее время.
Алгоритм последовательность операций, которые необходимо выполнить над исходными и промежуточными данными для получения искомого результата.
Представление алгоритма в виде машинных команд, воспринимаемых вычислительной системой, называется программой.
Вывод. Использование программ, представленных алгоритмами машинных команд вертикального кодирования, позволяет достигать высокого быстродействия при исполнении за счёт значительного сокращения длины кода команд по сравнению с числом микроопераций, которые производит микропроцессор при выполнении этой программы.