В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > AVR > Команды
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Команда ST (STD) - записать косвенно из регистра в СОЗУ с использованием индекса Z

Описание:

Записывается косвенно, со смещением или без смещения, один байт из регистра в СОЗУ. Положение байта в СОЗУ указывается 16-разрядным регистром-указателем Z в регистровом файле. Обращение к памяти ограничено текущей страницей объемом 64 Кбайта. Для обращения к другой странице СОЗУ необходимо изменить регистр RAMPZ в I/O области. Регистр-указатель Z может остаться неизменным после выполнения команды, но может быть инкрементирован или декрементирован. Эта особенность очень удобна при использовании регистра-указателя Z в качестве указателя стека, однако, поскольку регистр-указатель Z может быть использован для косвенного вызова подпрограмм, косвенных переходов и табличных преобразований, более удобно использовать в качестве указателя стека регистры-указатели X и Y.

Использование Z-указателя:
  Операция:   Комментарий:
(i) (Z) <-- Rr   Z: Неизменен
(ii) (Z) <-- Rr Z <-- Y + 1 Z: Инкрементирован впоследствии
(iii) Z <-- Z - 1 (Z) <-- Rr Z: Предварительно декрементирован
(iv) ( Z + q) <-- Rr   Z: Неизменен, q: смещение
 
  Синтаксис Операнды: Счетчик программ:
(i) ST Z,Rr 0 < d < 31 PC <-- PC + 1
(ii) ST Z+,Rr 0 < d < 31 PC <-- PC + 1
(iii) ST -Z,Rr 0 < d < 31 PC <-- PC + 1
(iv) STD Z+q,Rr 0 < d < 31,
0 < q < 63
PC <-- PC + 1


16-разрядный код операции:


(i) 1000 001r rrrr 0000
(ii) 1001 001r rrrr 0001
(iii) 1001 001r rrrr 0100
(iv) 10q0 qq1r rrrr 0qqq

Булевы выражения регистра статуса (SREG)
I T H S V N Z C
- - - - - - - -


Пример:

     clr   r31      ; Очистить старший байт Z
     ldi   r30, $20 ; Установить $20 в младший байт Z
     st    Z+,r0    ; Сохранить содержимое r0 в SRAM по адр. $20 (Z постинкрементируется)
     st    Z, r1    ; Сохранить содержимое r1 в SRAM по адресу $21
     ldi   r30, $23 ; Установить $23 в младший байт Z
     st    Z, r2    ; Сохранить содержимое r2 в SRAM по адресу $23
     st    -Z, r3   ; Сохранить содержимое r3 в SRAM по адр. $22 (Z преддекрементируется)
     std   Z+2, r4  ; Сохранить содержимое r4 в SRAM по адресу $24

Слов: 1 (2 байта)

Циклов: 2