Короткий прыжок может быть достигнут с использованием относительного смещения от текущей инструкции по сборке.Для x86 / 32-битных это 2-байтовая инструкция, где первый байт всегда равен EB
для короткого перехода, а второй байт - это число байтов до или после текущая инструкция для перехода.Второй байт - это знаковое 8-битное число, поэтому самый дальний краткий переход на x86 составляет +/- 127 байт.Все, что дальше +/- 127 байт, является прыжком в длину, E9
и должно использовать полный 32-битный адрес;в результате получается 5-байтовая инструкция.
Об этом важно помнить, если вы выполняете встроенное исправление кода сборки.
ex.EB 0
будет переходить к коду операции после короткого перехода, а не к самой строке кода.
ex.EB 7F
- самый дальний прыжок вниз.