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

Команда brpl – Перейти, якщо плюс

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

Операція:

(i)

If N = 0 then PC < PC + k +1, else PC < PC +1

Синтаксис

Операнди:

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

(i)

BRPL k

-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

subi r18,35 ;віднімаємо від регістра R18 число 35

brpl end ;якщо результат додатній, перехід на мітку end

rjmp m1 ; якщо результат від’ємний, перехід на мітку m1

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

Команда brge – Перейти, якщо більше або дорівнює (з урахуванням знаку)

Описання: Умовний відносний перехід. Тестується біт прапорця знаку (S) регістра статусу і, якщо біт очищений, виконується перехід відносно стану лічильника програм. Якщо команда виконується безпосередньо після виконання будь-якої з команд CP, CPI, SUB або SUBI перехід відбудеться якщо, і тільки якщо, двійкове число, зі знаком зображене в Rd, більше або еквівалентне двійковому числу зі знаком, зображеному в Rr. Дана команда виконує перехід в любому напрямку відносно стану лічильника програм (PC-64 < Rd < PC+63). Параметр k являється зсувом відносно стану лічильника програм і представлений в формі доповнення до двох. (Команда еквівалентна BRBC 4,k).

Операція:

(i)

If Rd > Rr (NV = 0) then PC < PC + k +1, else PC < PC +1

Синтаксис

Операнди:

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

(i)

BRGE k

-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

subi r18,-23 ;віднімаємо від регістра R18 число -23

brge end ;якщо R18-23 (зі знаку), перехід на мітку end

rjmp m1 ; якщо R18<-23, перехід на мітку m1

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

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