Инструкция безусловного перехода передаёт управление команде, адрес которой указан в инструкции. Команда безусловного перехода имеет вид
JMP - безусловный переход - передает управление по адресу.
| Переход можно осуществлять как в пределах одного сегмента, так и в другой сегмент.
| JMP r/m
JMP i
| JMP [BX]
JMP метка
|
В программах используют имя метки, установленной перед командой, на которую выполняется переход.
Типы переходов:
- переход типа short (короткий) – если адрес перехода находится в пределах от –127 до +128 байт от команды, вызвавшей переход;
- переход типа near (ближний) – если адрес перехода находится в том же сегменте, что и команда, вызвавшей переход;
- переход типа far (дальний) – если адрес перехода находится в другом сегменте.
jmp [< тип > ptr ] операнд.
<тип> - тип перехода short (короткий) – смещение 127 байтов вперёд или 128 байтов назад, near (близкий) – смещение в пределах сегмента (64 Кбайта), far (дальний) – в любой сегмент с любым смещением.
ptr– приставка, которую можно перевести как указанный в.
Если тип не задан, по умолчанию принимается near.
Всего можно выделить пять типов безусловных переходов (таблица 3.1).
| Таблица 3.1
|
| Типы команд безусловного перехода
|
| Название
| Мнемоника
| Описание
|
| внутрисегментный прямой короткий
| jmp short <операнд>
| IP ← (IP) + 8-битное смещение, определяемое операндом
|
| внутрисегментный прямой близкий переход
| jmp near ptr <операнд>
| IP ← (IP)+16-битное смещение, определяемое операндом
|
| внутрисегментный косвенный переход
| jmp <адрес операнда>
| IP ← 16-битный адрес перехода
|
| Межсегментный прямой далекий переход
| jmp far ptr <операнд>
| IP ← смещение операнда в сегменте
CS ← адрес сегмента, содержащего операнд
|
| Межсегментный косвенный далёкий переход
| jmp far ptr <адрес операнда>
| IP ← операнд
CS ← адрес операнда +2
|