Я пытаюсь ответить на вопрос о задании, и я не уверен, прав ли я или нет.
Вопрос:
Кратко объясните цели инструкций в строках3, 4, 7, 8, 9, 10, 11, 12 и 13.
Мой ответ:
3 - загружает (адрес / значение?) Переменной A в R1.
4 - перемещает постоянную MAX в R2.
-
7 - сравнивает содержимое R2 с постоянной 0.
8 - заканчиваетсяветвь (цикл), если R2 = 0
9 - загрузка содержимого R1 в R4
10 - добавление данных в R3 с R4, результат сохраняется в R3.
11- Добавляет данные в R1 с константой 4, результат сохраняется в R1.
12 - Вычитает данные в R2 с константой 1, результат сохраняется в R2.
13 - Возвращается к началу цикла loop1
1. .global _start
2. _start:
3. LDR R1, =A
4. MOV R2, #MAX
5. MOV R3, #0
6. loop:
7. CMP R2, #0
8. BEQ end
9. LDR R4, [R1]
10. ADD R3, R4
11. ADD R1, #4
12. SUB R2, #1
13. B loop
14. end: ...
15. .data
16. .equ MAX, 5
17. A: .rept MAX
18. .word 0x00
19. .endr