JMP (инструкция x86) - JMP (x86 instruction)
Эта статья должна быть обновлено.Февраль 2017 г.) ( |
в язык ассемблера x86, то JMP
инструкция выполняет безусловный переход. Такая инструкция передает поток исполнение путем изменения указатель инструкции регистр. Есть несколько разных коды операций совершающие прыжок; в зависимости от того, находится ли процессор в реальный режим или же защищенный режим, и используется инструкция переопределения, инструкции могут принимать 16 бит, 32-битный, или сегмент: смещение указатели.[1]
Есть много разных форм прыжков: относительные, условный, абсолютное и регистр-косвенные переходы.
Следующие примеры иллюстрируют:
- относительный переход с 16-битным указателем;
- длинный переход (межсегментный), относительный переход с 32-битным указателем;
- и косвенный регистр абсолютный скачок с использованием Регистр EAX.
(Обратите внимание, что, хотя первый и второй переходы являются относительными, обычно вместо относительного смещения, закодированного в коде операции, отображается адрес назначения.)
Пример 1: загрузить IP с новым значением 0x89AB
, затем загрузите CS с 0xACDC
и IP с 0x5578
.
JMP 0x89ABJMP 0xACDC:0x5578
Пример 2: Загрузите EIP со значением 0x56789AB1
, только в защищенном режиме или нереальный режим.
JMP 0x56789AB1
Пример третий: переход к значению, хранящемуся в регистре EAX, только в защищенном режиме.
JMP EAX
Рекомендации
- ^ "Руководство разработчика программного обеспечения для архитектуры Intel, том 2: Справочное руководство по набору инструкций (6,5 МБ)" (PDF). Архивировано из оригинал (PDF) 19 февраля 2009 г.. Получено 2009-11-03.