Относительный переход отличается от абсолютного или длинного перехода тем, что инструкция не кодирует весь целевой адрес, на который будет продолжаться выполнение.
Скорее, он кодирует часть адреса или смещение от текущего указателя инструкции, в зависимости от архитектуры. Это экономит место в памяти программы, и в нетранслируемых архитектурах она также будет выполняться немного быстрее. Ограничением является то, что вы можете прыгать только на короткие расстояния.
Для текущих относительных переходов инструкций диапазон часто является смещением со знаком размера хранилища, используемого для кодирования адреса. Например, если используется 8-битный код операции и 8-битное смещение, то диапазон перехода обычно составляет от -126 до +129 от инструкции перехода. Асимметрия связана с тем, что смещение добавляется к указателю инструкции, который во время добавления указывает на следующую инструкцию вместо текущей.