Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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) используется при нахождении в теле подпрограммы. После нажатия на эту кнопку программа, выполнив команду возврата, останавливается.





Дата публикования: 2015-02-03; Прочитано: 222 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...