/*
 * Aufgabe 3_1.S
 *
 *  Created on: 03.01.2021
 *      Author: Julia Kisela
 */

.text /* Specify that code goes in text segment */

.equ NUMVALS, 5

.code 32 /* Select ARM instruction set */
.global datastart
datastart:
.word 0x01
.word 0x02
.word 0x03
.word 0x04
.word 0x05


.global _startup /* Specify global symbol */


_startup:
	ldr sp, =0x40001000 /* RAM Start = 0x400100, Stack = 4kByte Offset */
	ldr r5, =datastart
	mov r3, #NUMVALS
schleife:
	bl delay
	ldr r6, [r5], #4
	add r4, r6
	subs r3, r3, #1
	bne schleife

stop:
nop
bal stop

delay:
	stmfd sp!, {r7, lr} /* Speichern des verwendeten Registers und des lr auf Stack */
	ldr r7, =5
wait:
	subs r7,r7,#1
	bne wait
	ldmfd sp!, {r7, pc} /* Lesen des verwendetes Registers und des pc vom Stack */


.end

