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 нельзя использовать для передачи управления между уровнями привилегий.

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

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