Передавать управление по другому адресу можно тремя различными способами. Короткий переход «sjmp» — это относительный переход на расстояние от — 128 до +128 байт относительно начала следующей команды. Несмотря на данное ограничение это, вероятно, наиболее часто употребляемая команда перехода.
Страничный переходы «ajmp» и «acall» осуществляются в пределах текущей страницы объемом 2 Кбайт с помощью прибавления 11-разрядного смещения к содержимому программного счетчика. При этом старшие пять разрядов адреса команды остаются без изменения. Это означает, что необходимо следить за тем, чтобы адрес перехода находился в пределах текущей страницы. На рис 12.1 показано, какие проблемы могут возникнуть при использовании команды «ajmp». При втором использовании этой команды происходит переход к команде с «мнимой» меткой «PhatomB» на текущей странице, хотя на самом деле команда с меткой «LabelB» находится за пределами текущей страницы.
Длинный переход («ljmp») дает возможность передавать управление в любое место 64К пространства. Эту команду можно использовать в любом случае,
но она занимает дополнительный байт памяти программ, а при ее выполнении требуется также дополнительный командный цикл в некоторых моделях 8051, например в HSM.