]> hackdaworld.org Git - info3/asm.git/commitdiff
added loesung 4-1
authorhackbard <hackbard>
Thu, 15 May 2003 22:59:27 +0000 (22:59 +0000)
committerhackbard <hackbard>
Thu, 15 May 2003 22:59:27 +0000 (22:59 +0000)
loesung4-1.s [new file with mode: 0644]

diff --git a/loesung4-1.s b/loesung4-1.s
new file mode 100644 (file)
index 0000000..1387f63
--- /dev/null
@@ -0,0 +1,39 @@
+; blatt 4
+; aufgabe 1
+
+.text
+addi r20,r0,0x20 ; wir brauchen mal 32 fuer ne mult
+addi r21,r0,4 ; ebenso die 4
+
+addi r1,r0,1 ; zeilenzaehler
+sw 0x200,r1 ; mal mit der 1 anfangen
+addi r1,r1,1 ; weiter in 2ter zeile
+addi r8,r0,8 ; max 8 werte pro zeile
+
+loop:
+beqz r8,next
+subi r8,r8,1
+sgt r9,r2,r1
+bnez r9,next
+sgt r12,r2,r0
+subi r3,r1,2
+multu r3,r3,r20
+multu r4,r2,r21
+add r3,r3,r4
+lw r5,0x200(r3)
+subi r6,r3,4
+lw r10,0x200(r6)
+mult r10,r10,r12
+add r11,r5,r10
+addi r7,r3,0x20
+sw 0x200(r7),r11
+addi r2,r2,1
+j loop
+
+next:
+addi r1,r1,1 ; zeilenzaehler erhoehen
+add r2,r0,r0 ; counter auf 0 zuruecksetzen
+addi r8,r0,8 ; max, mehr geht nicht in eine zeile
+j loop
+
+; kein ende!