Система команд

Система команд (язык) это конкретной вычислительной машины (машинный язык), который интерпретируется непосредственно микропроцессором.

«Слова» машинного языка называются машинными командамиилиинструкциями. Каждая из них описывает элементарное действие, выполняемое процессором, такое как «переслать байт из памяти в регистр».

У разных процессоров системы команд существенно различаются, но в основе своей они очень похожи. Количество команд у процессоров также различно. У современных мощных процессоров количество команд достигает нескольких сотен.

Каждая команда процессора имеет два представления:

- В виде машинной команды (цифровое представление).

- В виде команды Ассемблера. Поскольку человек не привык читать сплошные цифры, каждая команда имеет своё имя (имена) и формат.

Ассемблер это символический язык программирования, представляющий команды процессора. В приведенных ниже примерах мы будем рассматривать именно команды Ассемблера. Команда с двумя операндами будет на ассемблере иметь следующий вид:

Имя_команды операнд_Приемник, операнд_Источник.

Расскажем теперь только об основных командах и только самое главное. Все приведенные ниже примеры будут относиться к системе команд х86. Полную информацию об этой системе команд можно найти в приложении.

 

Команды можно условно разделить на следующие:

- арифметические, например «сложения» и «вычитания»;

- битовые, например «логическое и», «логическое или» и «логическое не»;

- присваивание данных, например «переместить», «загрузить», «выгрузить»;

- ввода-вывода, для обмена данными с внешними устройствами;

- управляющие инструкции (команды переходов), например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».

Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д. Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд (для большинства процессоров, и для частности для семейства х86, один из входных операндов будет и выходным, это так называемый операнд приемник, второй входной операнд будет операндом источником).