Бит W позволяет выбрать режим адресации: инкремент или декремент. Модифицированное значение базового адреса либо записывается обратно в него же (W=1), либо остается без изменений (W=0). В случае постиндексной адресации бит W теряет смысл и поэтому обнуляется, в этом случае можно сохранить прежнее значение базового адреса посредством установки смещения, равным нулю. Передача данных с постиндексированием всегда модифицируют содержимое базового адреса.
Смещение относительно базового регистра может быть задано либо в виде 12-битной константы, указанной в коде команды, или в виде второго регистра-операнда (при выполнении команды его содержимое может быть подвергнуто логическому сдвигу), а само смещение может быть либо добавлено (U=1), либо вычтено (U=0) из базового регистра Rn. Такие модификации смещения могут быть выполнены либо до выполнения пересылки (пред-индексация, P=1) или после нее (постиндексация, P=0).
Смещения и автоиндексирование
Рис. 23. Команды однократной передачи данных (LDR и STR)
Команды однократной передачи данных используются для чтения из памяти и записи в память данных в виде нескольких байт или слов. Адрес ячейки памяти, используемой в этих командах передачи, вычисляется посредством сложения или вычитания с некоторым смещением относительно указанного базового регистра. Если требуется применение автоиндексации, то результат этого вычисления может быть записан обратно в этот же базовый регистр.
Эти команды будут выполнены, если условие истинно. Все различные условия их выполнения перечислены в таблице 6. Машинный код обеих команд приведен на рис.23.
Однократная передача данных (LDR, STR)
Однократная передача данных (LDR, STR)
Комментариев нет:
Отправить комментарий