Описание:
Загружает косвенно один байт из СОЗУ в регистр. Положение байта в СОЗУ указывается 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