Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Part_2.doc
Скачиваний:
5
Добавлен:
04.09.2019
Размер:
2.6 Mб
Скачать

Команда rcall – Відносний виклик підпрограми

Описання: Команда викликає підпрограму в межах +2 Кслів (4 Кбайт). Адрес повернення (після виконання команди RCALL) зберігається в стеці.

Операція

(i)

PC < PC + k + 1 Пристрої з 16-розрядним лічильником команд, максимум 128 Кбайт пам’яті програм

(ii)

PC < PC + k + 1 Пристрої з 22-розрядним лічильником команд, максимум 8 Мбайт пам’яті програм

Синтаксис

Операнди:

Лічильник програм:

Стек

(i)

RCALL k

-2K < k <2K

PC < PC + k + 1

STACK < PC + 1; SP < SP-2 (2 байта, 16 біт)

(ii)

RCALL k

-2K < k <2K

PC < PC + k + 1

STACK < PC + 1; SP < SP-3 (3 байта, 22 бітa)

Булеві вирази регістра статусу (SREG)

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

ser r16 ;всі біти регістра R16 встановлюються в одиницю

out ddrb,r16 ;налаштування порту В на вивід

loop: inc r18 ; інкремент регістра R18

out portb,r18 ; вивід значення регістра R18 в порт B

rcall Delay ;виклик підпрограми затримки

rjmp loop ;перехід на мітку loop

Delay:

m1: inc r19 ; інкремент регістра R19

brne m1 ;якщо R190, перехід на мітку m1

inc r20 ; інкремент регістра R20

brne m1 ;якщо R200, перехід на мітку m1

ret ;вихід із підпрограми

Команда ret - Повернення із підпрограми

Описання: Команда повертає із підпрограми. Адрес повернення завантажується із стеку.

Операція

(i)

PC(15-0) < STACK Пристрої з 16-розрядним лічильником команд, максимум 128 Кбайт пам’яті програм

(ii)

PC(21-0) < STACK Пристрої з 22-розрядним лічильником команд, максимум 8 Мбайт пам’яті програм

Синтаксис

Операнди:

Лічильник програм:

Стек

(i)

RET

None

Див. операцію

SP < SP+2 (2 байта, 16 бит)

(ii)

RET

None

Див. операцію

SP < SP+3 (3 байта, 22 битa)

Булеві вирази регістра статусу (SREG)

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

-

-

Використання даної команди розглянуто в прикладі до команди RCALL.

Команда reti – Повернення із переривання

Описання: Команда повертає із переривання. Адрес повернення вивантажується зі стеку і встановлюється прапорець глобального переривання.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]