Script - Страница 118

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА 8051 - Script

Передавать управление по другому адресу можно тремя различными способами. Короткий переход «sjmp» — это относительный переход на расстояние от — 128 до +128 байт относительно начала следующей команды. Несмотря на данное ограничение это, вероятно, наиболее часто употребляемая команда перехода.

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

Длинный переход («ljmp») дает возможность передавать управление в любое место 64К пространства. Эту команду можно использовать в любом случае,

но она занимает дополнительный байт памяти программ, а при ее выполнении требуется также дополнительный командный цикл в некоторых моделях 8051, например в HSM.

Go to Top