5.Функциональная классификация машинных команд.

Машинная команда представляет собой закодированное по определенным правилам указание процессору навыполнение некоторой операции.

Классификация машинных команд

Весь набор машинных комманд можно разбить на 4 группы

Команды основного процессора (целочисленные)

Команды пересылки данных

Команды пересылки данных общего назначения

mov - основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки. Командой mov нельзя осуществить пересылку из одной области памяти в другую. Если такая необходимость возникает, то нужно использовать в качестве промежуточного буфера любой доступный в данный момент регистр общего назначения.

Команды работы со стеком

Это набор специализированных команд, ориентированных на организацию гибкой и эффективной работы со стеком.

Стек — это область памяти, специально выделяемая для временного хранения данных программы. Для работы со стеком предназначены три регистра:

Арифметические команды

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

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

Логические команды

В основе логических преобразований лежат правила формальной логики. Формальная логика работает на уровне утверждений истинно и ложно. Для микропроцессора это, как правило, означает 1 и 0 соответственно.

Для компьютера язык нулей и единиц является родным, но минимальной единицей данных, с которой работают машинные команды, является байт. Однако, на системном уровне часто необходимо иметь возможность работать на предельно низком уровне — на уровне бит.

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

Команды передачи управления

Регистр ecx/cx имеет определенное функциональное назначение — он выполняет роль счетчика в командах управления циклами и при работе с цепочками символов.

Синтаксис этой команды условного перехода таков:

Эти команды очень удобно использовать при организации цикла и при работе с цепочками символов.

Нужно отметить ограничение, свойственное команде jcxz/jecxz.

В отличие от других команд условной передачи управления, команда jcxz/jecxz может адресовать только короткие переходы — на –128 байт или на +127 байт от следующей за ней команды.

Цепочечные команды

Цепочка - непрерывная последовательность байт, слов или двойных слов, обрабатываемая как единое целое. Основное отличие цепочек от массивов состоит в способе доступа к элементам: для массивов - произвольный доступ, для цепочек - только последовательный (от начала цепочки к концу или от конца к началу).

Цепочечные команды - команды для обработки цепочек. Особенностью всех цепочечных команд является автоматическое продвижение к следующему элементу цепочки.

Адресация операндов

Направление обработки

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

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

Конечно, у разных типов машин организация регистров отличается; для их классификации также используется различная терминология.

Флаги используются, как правило, в командах проверки условий.