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

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

Описання: Команда перевіряє стан біта в регістрі и, якщо цей біт очищений, пропускає наступну команду.

Операція:

(i)

If Rr (b) = 0 then PC < PC + 2 (or 3) else PC < PC + 1

Синтаксис

Операнди:

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

(i)

SBRC Rr, b

0 < Rr < 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 ;налаштування порту В на вивід

ser r18 ;встановити всі біти регістра R18

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

sbrc r18,5 ;пропустити наступну команду, якщо 5 біт в регістрі R18

;очищений

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

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

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

Описання: Команда перевіряє стан біта в регістрі і, якщо цей біт встановлений, пропускає наступну команду.

Операція:

(i)

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

Синтаксис

Операнди:

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

(i)

SBRS Rr,b

0 < Rr < 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

sbrs r18,5 ;пропустити наступну команду, якщо 5 біт в регістрі R18

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

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

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

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

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

Операція:

(i)

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

Синтаксис

Операнди:

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

(i)

SBIC 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 ;налаштування порту В на вивід

ser r18 ;встановити всі біти регістра R18

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

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

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

;очищений

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

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

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