JMP [модификатор] адрес_перехода.
Адрес перехода может быть либо меткой, либо адресом области памяти, в которую предварительно помещен указатель перехода.
В системе команд микропроцессора существуют несколько кодов машинных команд безусловного перехода. Их различия определяются дальностью перехода и способом задания целевого адреса. Дальность перехода определяется местоположением операнда адрес_перехода. Этот адрес может находиться в текущем сегменте кода или в некотором другом сегменте.
Внутрисегментный переход предполагает, что изменяется только содержимое регистра IP. Можно выделить три варианта внутрисегментного перехода:
-
прямой короткий;
-
прямой;
-
косвенный.
Прямой короткий внутрисегментный переход применяется, когда расстояние от команды JMP до адреса перехода не более чем –128÷127 байтов. В этом случае транслятор языка формирует машинную команду безусловного перехода длиной 2 байта: 1 байт – код операции, 2-ой байт – смещение.
Прямой внутрисегментный переход отличается от короткого тем, что длина машинной команды составляет 3 байта, в которой 2 последних байта интерпрет ируются как смещение.
Косвенный внутрисегментный переход означает, что в команде JMP указывается не сам адрес перехода, а место, где этот адрес записан.
Команда прямого межсегментного перехода имеет длину 5 байт, из которых 2 байта составляет смещение адреса перехода, а другие 2 байта – значение сегментной составляющей (CS) того кодового сегмента.
Команда косвенного межсегментного перехода в качестве операнда имеет адрес области памяти, в которой содержится смещение и сегментная часть целевого адреса перехода.