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

1. Отсутствует аппаратная поддержка стека. Стек организуется программно, причем в качестве указателя стека рекомендуется использовать регистр R13

(SP), хотя для этого можно использовать и любой другой регистр общего назначения. Операции со стеком в программе производятся с помощью команд групповой пересылки регистров STM и LDM.

2. Установка в регистре CSPR флагов признаков N, Z, С и V по результатам выполнения команд производится при наличии в команде суффикса S. Если этот суффикс отсутствует, признаки в регистре CPSR не изменяются.

3. Любая команда может быть условной, если она снабжена соответствующим суффиксом условного выполнения. Виды суффиксов и соответствующих им условий приведены в Табл. 1.5.

Таблица 1.5. Суффиксы для организации условных операций (в формате ассемблерных команд обобщенно обозначаются {cond})

Операция

Описание

Ассемблерная мнемоника

EQ

Z= 1

Равно

NE

z = o

He равно

CS/HS

Q = l

Выше или равно (для чисел без знака — больше или равно)

CC/LO

c = o

Ниже (для чисел без знака — меньше)

Ml

N=1

Отрицательный результат

PL

N = 0

Положительный результат или ноль

VS

V=l

Переполнение

VC

V=0

Нет переполнения

HI

C= 1,Z = 0

Выше (для чисел без знака — больше)

LS

С = 0, Z = 1

Ниже или равно (для чисел без знака — меньше или равно)

GE

N = V

Больше или равно (для чисел со знаком)

LT

N*V

Меньше (для чисел со знаком)

GT

Z = 0, N = V

Больше (для чисел со знаком)

LE

Z=1,N*V

Меньше или равно (для чисел со знаком)

AL

 

Всегда (этот суффикс обычно опускается)

При наличии суффикса AL команда выполняется безусловно (при любых значениях признаков). Условия «выше», «ниже», «выше или равно», «ниже или равно» используются при сравнении чисел без знака. Условия «больше», «меньше», «больше или равно», «меньше или равно» используются при сравнении чисел со знаком.

Условные ключевые обозначения, используемые при описании форматов и ассемблерных мнемоник команд процессора ARM7TDMI-S, приведены в Табл. 1.6.

Таблица 1.6. Ключевые обозначения, используемые в командах ядра ARM7TDMI-S

Ключевое обозначение

Описание

{cond}

См. Табл. 1.5

<Oprnd2>

См. Табл. 1.14

{field}

См. Табл. 1.15

label

Метка (адрес) в памяти

S

Суффикс обновления флагов (необязателен)

В

Операция с байтом (необязателен)

H

Операция с полусловом (необязателен)

T

Суффикс привилегированных пользовательских режимов. Не может использоваться с преиндексной адресацией

<a_mode2>

См. Табл. 1.8

<a_mode2P>

См. Табл. 1.9

<a_mode3>

См. Табл. 1.10

<a_mode4L>

См. Табл. 1.11

<a_mode4S>

См. Табл. 1.12

<a_mode5>

См. Табл. 1.13

32bit_Imm

32-битная константа, формируемая путем циклического сдвига вправо 8-битного значения на четное число битов

24bit_Imm

24-битная константа в явном виде

8*4bit_Imm

10-битная константа, формируемая путем сдвига влево 8-битного значения на два бита

7*4bit_Imm

9-битная константа, формируемая путем сдвига влево 7-битного значения на два бита

5*4bit_Imm

7-битная константа, формируемая путем сдвига влево 5-битного значения на два бита

5*2bit_Imm

6-битная константа, формируемая путем сдвига влево 5-битного значения на один бит

12bit_Imm

12-битная константа в явном виде

8bit_Imm

8-битная константа в явном виде

5bit_Imm

5-битная константа в явном виде

3bit_Imm

3-битная константа в явном виде

<reglist>

Разделенный запятыми список регистров, заключенных в фигурные скобки ({and})

temp

Теневой регистр, используемый для временного хранения

RdLo, RdHi

Регистры общего назначения в состоянии ARM, содержащие младшую и старшую половины числа (результата операции) соответственно

Lo

Регистры R0...R7 в состоянии THUMB

Hi

Регистры R8...R15 в состоянии THUMB

{!>

Содержимое базового регистра обновляется после перемещения данных, если в команде имеется символ «!»

+/-

+ или — (знак «+» может быть опущен)

Полный список команд процессорного ядра ARM7TDMI-S для состояния ARM приведен в Табл. 1.7.


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






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_22.html on line 657

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_22.html on line 657

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_22.html on line 657