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

Команда st - записати непрямо з регістру в созп з використанням індексу z

Описання: Записується непрямо один байт із регістра в СОЗП. Положення байта в СОЗП вказується 16-розрядним регістром-вказівником Z в регістровому файлі. Звернення до пам’яті обмежено поточною сторінкою об’ємом 64 Кбайта. Для звернення до другої сторінки СОЗП необхідно змінити регістр RAMPZ в області вводу-виводу. Регістр-вказівник Z може залишатись незмінним після виконання команди, але може бути інкрементований або декрементований. Ця особливість дуже зручна при використанні регістра-вказівника Z в якості вказівника стека.

Операція:

Синтаксис

Операнди:

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

(i)

ST Z, Rr

0 < Rd < 31

PC < PC + 1

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

I

T

H

S

V

N

Z

C

-

-

-

-

-

-

-

-

Приклад:

.device AT90S1200

.include "1200def.inc"

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

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

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

ldi r30,17 ;в молодший байт Z – регістра записуємо адрес 1710 = 11h (це ;адрес регістра R18)

st z,r18 ;записуємо значення регістра R18 в SRAM по адресу 11h (тобто ;в регістр R17)

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

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

Команда mov - копіювати регістр

Описання: Команда створює копію одного регістра в другому регістрі. Початковий регістр Rr залишається незмінним, в регістр призначення Rd загружається копія вмісту регістра Rr.

(i)

Rd  Rr

Синтаксис

Операнди:

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

(i)

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

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

mov r17,r18 ;записуємо в регістр R17 значення регістру R18

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

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

Команда ldi - загрузити константу

Описання: Загружається 8-розрядна константа в регістр від 16 по 31

Операція:

(i)

Rd  K

Синтаксис

Операнди:

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

(i)

LDI Rd, K

16 < Rd < 31, 0 < K < 255

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,55 ;записуємо в регістр R17 число 55

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

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