JMP

Синтаксис JMP операнд
Машинный
код
EB cb — JMP rel8
E9 cw — JMP rel16
E9 cd — JMP rel32
FF /4 — JMP r/m16
FF /4 — JMP r/m32
EA cd — JMP ptr16:16
EA cp — JMP ptr16:32
FF /5 — JMP m16:16
FF /5 — JMP m16:32
Описание Безусловный переход.
Действие Далее перечислены возможные варианты задания операнда:

  • rel8/16/32 — короткий относительный переход. Значение rel8/16/32 трактуется как знаковое и является смещением перехода относительно следующей за JMP команды в сегменте кода, то есть адрес перехода равен (EIP/IP) + (rel8/16/32);
  • r16(32)/m16(32) — близкий абсолютный косвенный переход. Операнд — регистр г16(32) или ячейка памяти m16(32), содержащие адрес перехода в текущем сегменте кода;
  • ptr16:16(32) — дальний абсолютный переход. Операнд — компоненты полного адреса в виде 4- или 6-разрядного указателя, по которому необходимо произвести переход;
  • m16:16(32) — дальний абсолютный косвенный переход. Операнд — адрес ячейки памяти размером 32(48) битов со структурой m16:16(32), содержащей компоненты адреса перехода.

Выполнение команды при дальнем переходе зависит от режима работы процессора:

  • в реальном режиме или режиме виртуального процессора 8086 команда JMP передает управление по адресу, определяемому операндом, который может задаваться прямо (ptr16:16(32)) или косвенно (m1б:16(32));
  • в защищенном режиме выполняются три типа переходов: дальний переход в подчиненный или неподчиненный сегмент кода; дальний переход через шлюз вызова; переключение задачи.

Команду JMP нельзя использовать для передачи управления между уровнями привилегий.

Флаги Изменяются только при переключении задачи.

К списку команд