Архив рубрики «Система команд»

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

Машинная команда представляет собой инструкцию процессору, в которой указано: что делать; объекты, над которыми выполняется действие (операнды); как делать (зависит от типа операнда). Также могут присутствовать один или несколько префиксов, указывающих на особенности выполнения команды.

В этой главе мы рассмотрим только команды ЦП, исключив из рассмотрения команды сопроцессора, таким образом, исключив всевозможные расширения: MMX, 3DNow!, SSE, SSE2 и т.д.

Классификация команд по операндам

Команды имеют переменный формат, каждая команда имеет свою структуру. Команды могут быть:

  • безадресные операнд задан неявно на микропрограммном уровне;
  • одноадресные — операнд рассматривается как источник или получатель;
  • двухадресные — в двухадресных командах первый операнд является приемником, второй — источником. Содержимое приемника изменяется в зависимости от типа команды. В двухадресной команде операнды имеют одинаковый размер. Возможные сочетания операндов в двухадресных командах:

q     регистр ® регистр;

q     регистр ® память;

q     память ® регистр;

q     непосредственный операнд ® регистр;

q     непосредственный операнд ® память.

Операнд может располагаться:

q     в самой команде (непосредственный операнд), например: MOV AX, 0C24, здесь 0C24 — непосредственный операнд;

q     в одном из регистров процессора или сопроцессора;

q     в сегменте данных;

q     в порту ввода/вывода. Номер порта может быть задан и непосредственным операндом (если он <100), и может находиться в регистре DX; в сегменте стека.