1.4.2. Способы адресации и система команд ARM
Способы адресации операндов, которые может использовать микроконтроллер ARM7TDMI-S, перечислены в Табл. 1.4.
Таблица 1.4. Способы адресации, используемые микропроцессором с ядром ARM7TDMI-S
Обозначение |
Описание |
#Imm |
Непосредственная. Операнд Imm входит в состав команды |
Rn |
Регистровая. В команде задается имя регистра Rn, содержимое которого является операндом или результатом операции |
Rn, shift #n |
Регистровая с масштабированием. При выполнении команды содержимое регистра Rn сдвигается на число битов п, указанное в команде (от 1 до 31). Вместо масштабирующего сдвига shift в ассемблерном тексте используется один из четырех символов, задающих вид производимого сдвига: i LSL — логический сдвиг влево; LSR — логический сдвиг вправо; ASR — арифметический сдвиг вправо; ROR — циклический сдвиг вправо. При выполнении арифметических и логических сдвигов, последний выдвигаемый из регистра бит поступает в регистр CPSR в качестве флага признака переноса С. При циклическом сдвиге, бит С включается в цепь сдвига только, если число битов сдвига задано равным нулю. В этом случае выполняется циклический сдвиг операнда на один бит вправо через бит С в регистре CPSR. Описанный способ адресации может применяться, например, в командах пересылки данных MOV |
[Rn] |
Косвенно-регистровая. Содержимое указанного регистра Rn содержит адрес ячейки памяти, где хранится операнд или результат |
[Rn+Imm] {!} |
Преиндексная с непосредственным смещением. Адресом в команде служит содержимое базового регистра Rn, которое индексируется перед выполнением операции путем сложения или вычитания непосредственного операнда Imm. Если в поле операнда содержится символ {!}, то индексированное содержимое Rn сохраняется после выполнения операции |
[Rn,±Rm] {!} |
Преиндексная с регистровым смещением. Адресом в команде служит содержимое базового регистра Rn, которое индексируется перед выполнением операции путем сложения или вычитания содержимого регистра Rm. Если в поле операнда содержится символ {!}, то индексированное содержимое Rn сохраняется после выполнения операции |
[Rn,±Rm, shift #n] |
Преиндексная с масштабированным регистровым смещением. Адресом в команде служит содержимое базового регистра Rn, которое индексируется перед выполнением операции путем сложения или вычитания масштабированного содержимого регистра Rm |
[Rn],+Rm |
Постиндексная с регистровым смещением. Адресом в команде служит содержимое базового регистра Rn, которое индексируется после выполнения операции путем сложения или вычитания содержимого регистра Rm |
[Rn],±Rm, shift #n |
Постиндексная с масштабированным регистровым смещением. Адресом служит содержимое базового регистра Rn, которое индексируется после выполнения операции путем сложения или вычитания масштабированного содержимого регистра Rm |
Поскольку ядро ARM7TDMI-S относится к RISC-процессорам, оно выполняет относительно небольшой набор команд. Система команд имеет следующие характерные особенности:
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |