Ub5_A2a.s Division mit Rest 1

Help Contents DLX-Beispielprogramme Ub5_A2a.s Division mit Rest 1
Ub5_A1.s Bubble Sort Ub5_A2b.s Division mit Rest 2

Ub5_A2a.s Division mit Rest 1

; Systemnahe Informatik 2004 Uebung 5 Aufgabe 2a
; Division mit Rest durch fortlaufende Subtraktion
; r1=r1/r2, r2=r1 mod r2

		.data
Divident:	.word 101
Divisor:	.word 9

		.text
main:		lw r1,Divident
		lw r2,Divisor
		jal Division
		trap 0

		.data
DivSave3:	.space 4
DivSave4:	.space 4
		.text
Division:	sw DivSave3,r3
		sw DivSave4,r4
		beqz r2,Division_durch_Null
		add r3,r0,r0	;r3=Quotient
while_r1:	addi r3,r3,1	;Quotient++
		sub r1,r1,r2	;Divident-=Divisor
		sgt r4,r1,r0	;r4=(r1>0)
		bnez r4,while_r1
		add r2,r1,r2	;r2=Remainder
		subi r1,r3,1	;r1=Quotient
Division_end:	lw r3,DivSave3
		lw r4,DivSave4
		jr  r31

Division_durch_Null:
		trap 0

Ub5_A1.s Bubble Sort Ub5_A2b.s Division mit Rest 2