Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разное / АВС. Работа с массивами

.pdf
Скачиваний:
14
Добавлен:
10.11.2020
Размер:
23.99 Кб
Скачать

_____________________

___________________________

I

 

I

I

 

I

I

REG

I <----------->

I

MEM

I

I____________________I

I__________________________I

Назначим регистр R0 базовым для считывания данных с тумблеров. Адрес – 0xff200040

1.LDR R0, ADR_SW

-------

-------

ADR_SW: .word 0xff200040

2.LDR R0, =0xff200040 // компилятор создает ячейку в памяти данных и сохраняет в ней записанный в тексте команды адрес.

MOVW R0,#0x40

MOVT R0,#0xff20 // R0 получает данные из служебных регистров, в которые скопированы непосредственные операнды из текста команд.

Работа с массивами.

Заполнение массива

Устанавливаем базовый адрес. В качестве базового возьмем регистр R1. Массив начинается с адреса метки ARR.

LDR R1,=ARR

1. Заполняем массив через содержимое одного регистра в цикле.

STR R2, [R1],#4 // копируем содержимое R2 в ячейки памяти с базовым адресом в R1 с увеличением адреса на 4 единицы после каждого обращения

2. Заполняем массив цепочкой. Копируем в память содержимое нескольких регистров.

STMIA R1!,{R3-R7} // заполняем массив содержимым регистров R3,R4,R5,R6,R7 с последующим увеличением содержимого базового регистра R1 после каждой загрузки ячейки. После выполнения команды содержимое R1 = ARR + 4x5

Задание:

Набрать массив из 6 элементов, считываемых последовательно с тумблеров. Содержимое массива скопировать в регистры R6 – R11.