лабы / 3 работа
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
_________________________________________________________________
Кафедра: «Программной инженерии и вычислительной техники»
Дисциплина: «Микропроцессорные устройства»
Ассемблер ARM (Cortex A9)
Отчёт по лабораторной работе №3
Выполнили ст. группы РТ-01
Принял: Анохин Ю.В.
Санкт-Петербург
2022
Лабораторная работа № 3.
Ассемблер ARM (Cortex A9)
Прогр. 1.
.text
.global _start
1._start: LDR R0, ADR1 // базовый адрес порта тумблеров в R0
2. LDR R1, =ARR // базовый адрес пространства под массив
3. MOV R2, #5 // счетчик элементов массива
4. M1: LDR R3, [R0] // считывание числа с тумблеров в R3
5. STR R3, [R1], #4 // копирование числа в массив
6. SUBS R2, #1 // уменьшение состояния счетчика массива
7. BNE M1 // продолжение считывания, счетчик не «0»
8. LDMDB R1!, {R4-R8} // копирование массива в регистры
9.stop: B stop // останов, бесконечный цикл
ADR1: .word 0xFF200040
ARR: .space 20
.end
№команды |
Состояние используемого регистра |
Адрес используемой ячейки памяти |
Содержимое ячейки памяти |
Состояние PC |
1. |
R0 = FF200040 |
00000024 |
FF200040 |
PC = 00000000 |
2. |
R1= 00000028 |
00000028 |
0 |
PC = 00000004 |
3. |
R2 = 5 |
- |
- |
PC = 00000008 |
4. |
R3 = 77 |
FF200040 |
77 |
PC = 0000000C |
5. |
R3 = 77 R1 = 0000002C |
00000028 |
77 |
PC = 00000010 |
6. |
R2 = 4 |
- |
- |
PC = 00000014 |
7. |
- |
- |
- |
PC = 00000018 |
4. |
R3 = 1 |
FF200040 |
1 |
PC = 0000000C |
5. |
R3 = 1 R1 = 00000030 |
0000002C |
1 |
PC = 00000010 |
6. |
R2 = 3 |
- |
- |
PC = 00000014 |
7. |
- |
- |
- |
PC = 00000018 |
4. |
R3 = 3C0 |
FF200040 |
3C0 |
PC = 0000000C |
5. |
R3 = 3C0 R1 = 00000034 |
00000030 |
3C0 |
PC = 00000010 |
6. |
R2 = 2 |
- |
- |
PC = 00000014 |
7. |
- |
- |
- |
PC = 00000018 |
4. |
R3 = 38C |
FF200040 |
38C |
PC = 0000000C |
5. |
R3 = 38C R1 = 00000038 |
00000034 |
38C |
PC = 00000010 |
6. |
R2 = 1 |
- |
- |
PC = 00000014 |
7. |
- |
- |
- |
PC = 00000018 |
4. |
R3 = 3A0 |
FF200040 |
3A0 |
PC = 0000000C |
5. |
R3 = 3A0 R1 = 0000003C |
00000038 |
3A0 |
PC = 00000010 |
6. |
R2 = 0 |
- |
- |
PC = 00000014 |
7. |
- |
- |
- |
PC = 00000018 |
8. |
R4 = 77 R5 = 1 R6 = 3C0 R7 = 38C R8 = 3A0 |
00000028 0000002C 00000030 00000034 00000038 |
77 1 3C0 38C 3A0 |
PC = 0000001C |