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

Команда sbis – Пропустити, якщо біт в регістрі вводу-виводу встановлений

Описання: Команда перевіряє стан біта в регістрі вводу-виводу і, якщо цей біт встановлений, пропускає наступну команду. Дана команда працює с молодшими 32 регістрами вводу-виводу (адресу з 0 по 31).

Операція:

(i)

If I/O (P, b) = 1 then PC < PC + 2 (or 3) else PC < PC + 1

Синтаксис

Операнди:

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

(i)

SBIS P, b

0 < P <31, 0 < b < 7

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

PC < PC + 2, якщо наступна команда довжиною в 1слово

PC < PC + 3, пропускає команди RJMP або RCALL

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

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

-

-

Приклад: .device AT90S1200

.include "1200def.inc"

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

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

clr r18 ;очистити регістр R18

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

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

sbis portb,5 ;пропустити наступну команду, якщо 5 біт порту В

;встановлений

rjmp m1 ;якщо PortB(5)=0, перехід на мітку m1

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

Команда brbs – Перейти, якщо біт в регістрі статусу встановлений

Описання: Умовний відносний перехід. Тестується один з бітів регістра статусу и, якщо біт встановлений, виконується перехід відносно стану лічильника програм. Дана команда виконує перехід в будь-якому напрямку відносно стану лічильника програм (PC-64 < Rd < PC+63). Параметр k являється зсувом відносно лічильника програм і зображений в формі доповнення до двох.

Операція:

(i)

If SREG (s) = 1 then PC < PC + k +1, else PC < PC +1

Синтаксис

Операнди:

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

(i)

BRBS s, k

0 < s <7, -64 < k <+63

PC < PC + k + 1, PC < PC + 1, якщо умови не виконані

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

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

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

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

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

bst r18,4 ;копіюємо 4 біт регістра R18 в біт-акумулятор Т статус-регістра

brbs 6,end ;якщо 6-ий біт (біт Т) встановлений в статус-регістрі, перехід на

;мітку end

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

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

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