Предыдущая Следующая

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-процессорам, оно выполняет относительно небольшой набор команд. Система команд имеет следующие характерные особенности:


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_21.html on line 206

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_21.html on line 206

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_21.html on line 206