/* * 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