Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные сведения о ARM.pdf
Скачиваний:
113
Добавлен:
18.05.2014
Размер:
482.2 Кб
Скачать

Министерство образования и науки РФ

¾¾¾¾¾¾¾

Санкт-Петербургский государственный электротехнический университет "ЛЭТИ"

____________________________________________________

ОСНОВНЫЕ СВЕДЕНИЯ О МИКРОПРОЦЕССОРНОЙ АРХИТЕКТУРЕ ARM И ЯЗЫКЕ АССЕМБЛЕРА ДЛЯ НАБОРА ИНСТРУКЦИЙ ARM

Методические указания к лабораторным работам

Санкт-Петербург Издательство СПбГЭТУ "ЛЭТИ" 2013

УДК 004.43

Основные сведения о микропроцессорной архитектуре ARM и языке ассемблера для набора инструкций ARM: Методические указания к лабораторным работам/ Сост.: Р. Ю. Марченков, П. Г. Королев. СПб.: Изд-во СПбГЭТУ "ЛЭТИ", 2013. 28 с.

В настоящих методических указаниях приводятся основные сведения о микропроцессорной архитектуре ARMv4T на примере микропроцессора AT91SAM7S и языке ассемблера компилятора GCC для набора инструкций ARM.

Предназначены для студентов бакалавриата, обучающихся по направлению 200106.68 «Приборостроение» дневной формы обучения.

Утверждено редакционно-издательским советом университета

в качестве методических указаний

© СПбГЭТУ "ЛЭТИ", 2013

2

Оглавление

 

Введение.............................................................................................................................................

4

1 Общие сведения..........................................................................................................................

5

1.1

Типы данных........................................................................................................................

5

1.2

Регистры общего назначения.............................................................................................

5

1.3

Регистр состояния программы...........................................................................................

5

1.4

Набор инструкций ARM.....................................................................................................

6

2 Флаги условий.............................................................................................................................

6

3 Предикаты выполнения команды..............................................................................................

7

4 Команды обработки данных......................................................................................................

9

4.1

Условные обозначения........................................................................................................

9

4.2

Форматы записи универсального операнда....................................................................

10

4.3

Форматы записи команд обработки данных...................................................................

11

4.4

Арифметические операции..............................................................................................

11

4.5

Логические операции........................................................................................................

12

4.6

Операции простой пересылки..........................................................................................

13

4.7

Операции сравнения и проверки.....................................................................................

13

4.8

Сдвиговые операции при формировании второго операнда.........................................

14

4.8.1 Арифметический сдвиг вправо................................................................................

14

4.8.2 Логические сдвиги....................................................................................................

14

4.8.3 Циклический сдвиг вправо.......................................................................................

15

4.8.4 Циклический сдвиг вправо на одну позицию с переносом...................................

15

4.9

Примеры.............................................................................................................................

15

5 Команды передачи управления................................................................................................

16

5.1

Условные обозначения......................................................................................................

16

5.2

Форматы записи команд передачи управления..............................................................

16

5.3

Переход на метку...............................................................................................................

17

5.4

Переход по адресу в регистре..........................................................................................

17

5.5

Вызов подпрограммы........................................................................................................

17

5.6

Вызов подпрограммы по адресу в регистре...................................................................

18

5.7

Вызов подпрограммы со сменой набора инструкций...................................................

18

6 Команды доступа к памяти (пересылки данных).................................................................

18

6.1

Условные обозначения......................................................................................................

18

6.2

Форматы записи выражения, формирующего адрес, и виды адресации.....................

20

6.3

Режимы пересылки...........................................................................................................

21

6.4

Особенности использования различных команд пересылки........................................

23

6.5

Примеры использования команд пересылки..................................................................

24

7 Команды умножения.................................................................................................................

25

7.1

Условные обозначения......................................................................................................

25

7.2

Простое умножение..........................................................................................................

25

7.3

«Длинное» умножение......................................................................................................

26

8 Псевдоинструкции....................................................................................................................

27

8.1

Псевдоинструкция ldr.......................................................................................................

27

3

Введение

Архитектура ARM — это 32-разрядная микропроцессорная RISC - архитектура (от англ. Reduced Instruction Set Computer – компьютер с сокращённым набором команд). Хранение и доступ к инструкциям и данным осуществляется в соответствии с принципами фон-Неймана.

Характерной особенностью процессоров с сокращённым набором команд является:

-упрощённый и единообразный набор инструкций одинакового размера, который позволяет упростить их декодирование и, как следствие, уменьшает время их выполнения;

-относительно большое количество регистров общего назначения;

-любые команды обработки данных могут быть выполнены только над содержимым регистров (принцип «загрузить/сохранить»), непосредственное изменение содержимого памяти невозможно;

Вдополнение к уже перечисленным особенностям RISC-архитектуры, архитектуру ARM отличает:

-совместное использование арифметического логического устройства (АЛУ, ALU) и сдвигового устройства (СУ, shifter) в большинстве инструкций обработки данных;

-наличие инструкций множественной загрузки и сохранения;

-предикативное (условное) исполнение инструкций: практически для любой инструкции можно указать, что она должна выполняться только при выполнении определённого условия (определяемого флагами условий регистра состояния программы);

-поддержка индексных автоинкрементных режимов адресации, позволяющая оптимизировать выполнение циклов.

4

1Общие сведения

1.1Типы данных

Процессор архитектуры ARM поддерживает работу со следующими основными типами данных:

-Byte (байт) — 8 бит;

-Halfword (полуслово) — 16 бит;

-Word (слово) — 32 бита.

Числа любого из поддерживаемых типов данных могут рассматриваться как знаковые, либо как беззнаковые числа. Для знакового представлении числа используется формат дополнительного кода.

1.2Регистры общего назначения

ARM-процессор работает с 32-разрядными регистрами. Доступными для работы являются 16 регистров (обозначаемые R0, R1, R2 … R15), причём три из них имеют особое назначение:

-R13 — регистр указателя стека (Stack Pointer, SP), используется при работе со стеком.

-R14 — регистр ссылки (Link Register, LR); данный регистр хранит адрес инструкции, следующей после инструкции перехода (передачи управления в подпрограмму) и используется для возврата из подпрограммы. Если процессор не выполняет подпрограмму, или в подпрограмме используется механизм возврата, не зависящий от состояния LR (например, адрес возврата был сохранён в стеке), данный регистр может быть использован как обычный регистр.

-R15 — программный счётчик (Program Counter, PC). При выполнении инструкции значение данного регистра указывает на адрес текущей инструкции, увеличенный на 8. Таким образом, он указывает на инструкцию, которая находится через одну инструкцию от текущей.

Остальные регистры не имеют специального назначения и могут свободно использоваться в программе.

1.3Регистр состояния программы

Набор флагов (признаков), отражающих текущее состояние процессора называется регистром состояния программы (CPSR, Current Program Status Register). Регистр состояния программы содержит:

5