 /*
 * Aufgabe4_1.S
 *
 *  Created on: 11.01.2021
 *      Author: Julia Kisela
 */
.text /* Specify that code goes in text segment */
.code 32 /* Select ARM instruction set */

.global _startup /* Specify global symbol */
_startup:
	ldr sp, =0x40001000
	mov r0, #4
	mov r4, #5
	mov r5, #9
	bl verdoppelnundquadrieren

stop:
nop
bal stop

verdoppeln:
	stmfd sp!, {lr}
	add r0, r0
	ldmfd sp!, {pc}

quadrieren:
	stmfd sp!, {r4, r5, lr}
	mov r4, r0
	mov r5, #0
nochnichtnull:
	add r5, r0
	subs r4, r4, #1
	bne nochnichtnull

	mov r0, r5
	ldmfd sp!, {r4, r5, pc}

verdoppelnundquadrieren:
	stmfd sp!, {lr}
	bl verdoppeln
	bl quadrieren
	ldmfd sp!, {pc}

.end

