МИКРОКОНТРОЛЛЕР AVR - Страница 85

МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Команды «jmp» и «call» имеют длину в два слова (четыре байта), что оказывает некоторое воздействие на ход выполнения программы. Во-первых, это влияет на число тактов, необходимых для выполнения команды. Выполнение команд «jmp» и «call» требует на один такт больше, чем команд «rjmp» и «rcall», которые выполняются за два и три такта, соответственно. Как вы увидите дальше, они также оказывают влияние на выполнение других команд.

Две последние команды для выполнения переходов и вызовов подпрограмм, которые следует обсудить — это команды «ijmp» и «icall», использующие индексный регистр Z (команды 36.46 и 36.47). Эти команды индексных переходов и вызовов подпрограмм имеются только в старших моделях AVR, Они модифицируют содержимое программного счетчика, как показано на рис. 36.3.

Рис. 36.3. Изменение содержимого программного счетчика в AVR при выполнении команд «ijmp» и «icall»

С помощью команд индексных переходов и вызовов подпрограмм можно легко реализовать конечный автомат (state machine) или логические структуры, выполняющие обработку таблиц. Эти команды отсутствуют в младших моделях AVR серии 1200, что означает, что они не могут выполнять индексные или табличные переходы и вызовы (в данных моделях не реализуется также команда «lpm»).

Go to Top