Лекция: Rcall label ;

 

Эта команда является командой относительного вызова (relative call),поэтому подпрограмма должна находиться в пределах 2048 команд от команды rcall.Для возврата (return)из подпрограммы используется соответствующая команда:

 

Ret

 

Можно сколько угодно вызывать подпрограммы из другой подпрограммы, например:

Sub1:

Rcall Sub2 ;

Rcall Sub3

Rcall Sub4

Ret

Start:

Rcall Sub1

 

До настоящего момента все наши программы были совместимы «снизу вверх», т.е. они могли работать и в более развитых моделях AVR. При использовании же подпрограмм эта совместимость нарушается, и, если вы разрабатываете такие программы для моделей, отличных от 1200 или Tiny, в секцию Initнеобходимо добавить следующие четыре строки:

 

Ldi temp,LOW(RAMEND); Указатель стека установлен

Out SPL,temp; на последний адрес ОЗУ

Ldi temp,HIGH(RAMEND)

Out SPH,temp

 

Кнопка симулятора Step Over (F10)используется для выполнения программы без захода в подпрограмму, т.е. сама подпрограмма выполняется с высокой скоростью, после чего программа останавливается на следующей строке. Кнопка Step Out (Shift + F11)используется при нахождении в теле подпрограммы. После нажатия на эту кнопку программа, выполнив команду возврата, останавливается.

еще рефераты
Еще работы по информатике