Ub4_A3.s Quadratur ohne mult

Help Contents DLX-Beispielprogramme Ub4_A3.s Quadratur ohne mult
Ub4_A2.s Optimierung dur Umordnung Ub4_A4.s Fuellt Speicher

Ub4_A3.s Quadratur ohne mult

; Systemnahe Informatik 2004 Uebung 4 Aufgabe 3
; Quadriert die Zahl an der Stelle 0x300 ohne mult/multi
; und schreibt das Ergebnis an Stelle 0x304.
		.data
OverStr:	.asciiz "Überlauf! Zahl ist größer 0xffff=16383.\n"
		.align 2
OverPtr:	.word OverStr
MaxHW:		.word 0xffff
		.data 0x300
Zahl:		.word 12345
				; eine Beispiel-Zahl
Quadrat:	.space 4
		.text
		lw r1,Zahl	; r1=Zahl
		lw r2,MaxHW
		sgt r2,r1,r2	; r2=Zahl > 0xffff
		bnez r2,Overflow
		add r2,r0,r0	; r2=0=Ergebnis
		addi r3,r0,16	; r3=16
		add r4,r0,r1	; r4=Zahl
		add r5,r0,1	; r5=1
Schleife:	and r6,r1,r5	; r6=Zahl & r5
		beqz r6,Weiter
		add r2,r2,r4	; Ergebnis+=r4
Weiter:		slli r4,r4,1	; r4=r4<<1
		slli r5,r5,1	; r5=r5<<1
		subi r3,r3,1
		bnez r3,Schleife
		sw Quadrat,r2
		trap 0
Overflow:	addi r14,r0,OverPtr
		trap 5
		trap 0

Ub4_A2.s Optimierung dur Umordnung Ub4_A4.s Fuellt Speicher