/*
 * Aufgabe3_3.S
 *
 *  Created on: 03.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 /* RAM Start = 0x400100, Stack = 4kByte Offset */
	ldr r0, =11 /* Dividend */
	ldr r1, =0 /* Divisor */
	ldr r2, =0 /* Errorregister */
	bl div32

stop:
nop
bal stop

div32:
	stmfd sp!, {r4, lr}
	movs r1,r1
	bne isOk

error:
	ldr r2, =1
	b stop

isOk:
	ldr r4, =0
schleife:
	add r4,r4,#1
	subs r0,r0,r1
	bcs schleife /* solange bis Unterlauf erreicht wurde */
	add r0,r0,r1
	sub r4,r4,#1
	mov r1,r4 /* Ergebnis (Quotient) steht nun in Register r1 */
	ldmfd sp!, {r4,pc}

.end

