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

Операція

(i)

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

(i)

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

Синтаксис

Операнди:

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

Стек

(i)

RETI

None

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

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

(ii)

RETI

None

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

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

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

I

T

H

S

V

N

Z

C

1

-

-

-

-

-

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

.org $002 ;організація переривання по переповненню таймера-лічильника

rjmp tim_ovf ;перехід на мітку tim_ovf при виникненні переривання

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

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

sei ;установка біта глобального переривання

ldi r20,5 ;записати в регістр R20 число 5

ldi r17,2 ; записати в регістр R17 число 2

out timsk,r17 ;установлюємо в регістрі маски переривання від таймера -;лічильника (TIMSK) біт TOIE0 – біт дозволу переривання по ;переповненню таймера-лічильника

out tifr,r17 ;очищуємо в регістрі прапорців переривання від таймера –;лічильника (TIFR) біт TOV0 – цей біт встановлюється при ;переповненні таймера-лічильника

qq: out tccr0,r20 ;встановлюємо предустановка таймера-лічильника CK/1024

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

tim_ovf: ;підпрограма, що виконується при перериванні по ;переповненню таймера-лічильника

dec r18 ;декремент регістра R18

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

add r18,r19 ;додаємо регістри R18 і R19

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

reti ;вихід із підпрограми переривання

Команда cpse - Порівняти і пропустити, якщо рівні

Описання: Команда порівнює вміст регістрів Rd і Rr і пропускає наступну команду якщо Rd = Rr.

Операція:

(i)

If Rd = Rr then PC < PC + 2 (or 3), else PC < PC +1

Синтаксис

Операнди:

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

(i)

CPSE Rd,Rr

0 < Rd <31, 0 < Rr<31

PC< PC + 1, якщо умови не виконуються, то пропуску немає

PC< PC + 2, пропуск одного слова команди

PC< PC + 3, пропуск двох слів команди

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

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

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

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

in r17,portd ; ввід даних з порту D в регістр R17

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

cpse r17,18 ;порівнюємо регістри R17 і R18

rjmp loop ;якщо R17R18,перехід на мітку m1

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

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