Описание:
Загружает косвенно один байт из СОЗУ в регистр. Положение байта в СОЗУ указывается 16-разрядным регистром-указателем X в регистровом файле. Обращение к памяти ограничено текущей страницей объемом 64 Кбайта. Для обращения к другой странице СОЗУ необходимо изменить регистр RAMPX в I/O области. Регистр-указатель X может остаться неизменным после выполнения команды, но может быть инкрементирован или декрементирован. Использование регистра-указателя X обеспечивает удобную возможность обращения к матрицам, таблицам, указателю стека.
Использование X-указателя:
Операция: | Комментарий: | ||
(i) | Rd <-- (X) | X: Неизменен | |
(ii) | Rd <-- (X) | X <-- X + 1 | X: Инкрементирован впоследствии |
(iii) | X <-- X - 1 | Rd <-- (X) | X: Предварительнo декрементирован |
Синтаксис | Операнды: | Счетчик программ: | |
(i) | LD Rd,X | 0 < d < 31 | PC<-- + 1 |
(ii) | LD Rd,X+ | 0 < d < 31 | PC<-- + 1 |
(iii) | LDD Rd,-X | 0 < d < 31 | PC<-- + 1 |
16-разрядный код операции:
(i) | 1001 | 000d | dddd | 1100 |
(ii) | 1001 | 000d | dddd | 1101 |
(iii) | 1001 | 000d | dddd | 1110 |
Булевы выражения регистра статуса (SREG)
|
||||||||
|
Пример:
clr r27 ;Очистить старший байт X ldi r26, $20 ;Установить $20 в младший байт X ld r0, X+ ;Загрузить в r0 содержимое SRAM по адресу $20 (X постинкрементируется) ld r1, X ;Загрузить в r1 содержимое SRAM по адресу $21 ldi r26, $23 ;Установить $23 в младший байт X ld r2, X ;Загрузить в r2 содержимое SRAM по адресу $23 ld r3, -X ;Загрузить в r3 содержимое SRAM по адресу $22 (X преддекрементируется)
Слов: 1 (2 байта)
Циклов: 2