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

2.2.1. Арифметичні і логічні команди

Позначення прапорців, які будуть використовуватись:

Прапорець, на який впливає команда

0:

Очищений командою прапорець

1:

Встановлений командою прапорець

-:

Прапорець, на який не впливає команда

Команда add - Скласти без переносу

Описання: Сума двох регістрів без добавлення вмісту прапорця переносу (С), розміщення результату в регістрі призначення Rd.

Операція:

(i)

Rd < Rd + Rr

Синтаксис

Операнди:

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

(i)

ADD Rd, Rr

0 < Rd < 31, 0 <Rr < 31

PC < PC + 1

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

I

T

H

S

V

N

Z

C

-

-

<=>

<=>

<=>

<=>

<=>

<=>

Приклад:

.device AT90S1200

.include "1200def.inc"

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

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

ldi r17,5 ; записуємо десяткове число 5 в регістр R17

ldi r18,9 ; записуємо десяткове число 9 в регістр R18

add r17,r18 ;додаємо регістри R17 і 18

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

Команда adc - Скласти з переносом

Описання: Сума двох регістрів і вмісту прапорця переносу (С), розміщення результату в регістрі призначення Rd.

Операція:

(i)

Rd < Rd + Rr + C

Синтаксис

Операнди:

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

(i)

ADC Rd, Rr

0 < Rd < 31, 0 < Rr < 31

PC < PC + 1

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

I

T

H

S

V

N

Z

C

-

-

<=>

<=>

<=>

<=>

<=>

<=>

Приклад:

.device AT90S1200

.include "1200def.inc"

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

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

ldi r17,58 ; записуємо десяткове число 58 в регістр R17

adc r17,r17 ;додаємо регістр R17 з самим собою

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

Команда sub - відняти без переносу

Описання: Віднімання вмісту регістра-джерела Rr із вмісту регістра Rd, розміщення результату в регістрі призначення Rd.

Операція:

(i)

Rd < Rd – Rr

Синтаксис

Операнди:

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

(i)

SUB Rd, Rr

16 < Rd < 31, 0 < Rr < 31

PC < PC + 1

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

I

T

H

S

V

N

Z

C

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

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

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

ldi r17,10 ; записуємо десяткове число 10 в регістр R17

ldi r18,9 ; записуємо десяткове число 9 в регістр R18

sub r17,r18 ;віднімаємо від регістра R17 регістр 18

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

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