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

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

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

Внаборе команд ARM все инструкции имеют размер, равный 4м байтам (32 бита), поэтому не существует такой команды, которая могла бы загрузить в регистр непосредственно адресуемое (т. е. расположенное в теле инструкции) произвольное 32-разрядное число. В случае, если это число представимо в виде 8-разрядного числа, сдвинутого по кругу на определённое чётное количество позиций, можно воспользоваться командой простой пересылки mov (см. п. 4.6). В противном случае, для загрузки числа в регистр необходимо, чтобы оно было где-то размещено в памяти и загружалось в регистр с использованием относительной (индексной) адресации.

Для того, чтобы упростить решение проблемы загрузки в регистры произвольных 32-разрядных чисел в набор инструкций ARM была введена псевдо-инструкция lrd, имеющая следующие форматы записи:

ldr{cond} Rd,=expr

(10)

ldr{cond} Rd,=label

(11)

где Rd — это регистр назначения; expr — произвольное 32-разрядное число; label — метка в тексте программы.

При компиляции исходного текста программы, компилятор проверяет, существует ли возможность загрузить необходимое число в память с использованием команды mov или mvn. И если это возможно, то псевдоинструкция заменяется на соответствующую инструкцию простой пересылки. В противном случае, компилятор располагает число в некоторой области памяти (обычно располагающейся сразу после последней инструкции программы) и генерирует инструкцию ldr, которая загружает это число с использованием относительной адресации (т. е. индексной относительно текущего значения регистра PC).

27

Редактор

¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾

Подписано в печать

Формат 60´84

1/16. Бумага офсетная.

 

Печать офсетная. Печ. л. 2.0.

 

 

Тираж 30 экз. Заказ

 

¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾

Издательство СПбГЭТУ "ЛЭТИ" 197376, С.-Петербург, ул. Проф. Попова, 5

28