]> hackdaworld.org Git - info3/asm.git/commitdiff
mit intervallschachtelung
authorhackbard <hackbard>
Thu, 15 May 2003 21:30:27 +0000 (21:30 +0000)
committerhackbard <hackbard>
Thu, 15 May 2003 21:30:27 +0000 (21:30 +0000)
loesung4-2.new.s [new file with mode: 0644]

diff --git a/loesung4-2.new.s b/loesung4-2.new.s
new file mode 100644 (file)
index 0000000..8022bc1
--- /dev/null
@@ -0,0 +1,41 @@
+; blatt 4
+; aufgabe 2
+
+.data
+text: .asciiz "input: "
+.align 2
+
+.text
+
+;addi r1,r0,text
+;jal InputUnsigned
+; das input zeug tut irgendwie nicht im windlx mit wine :( 
+; 2 befehle ...
+
+addi r1,r0,23 ; deshalb mach ich das mal fuer 23
+; diesen befehl aber nicht zaehlen, wegen egtl den oberen 2! :p
+
+; r2 sei untere grenze, aber da steht schon 0 drin
+add r3,r0,r1 ; obere grenze
+
+loop:
+sub r5,r3,r2
+sub r5,r5,1
+beqz r5,end
+sub r4,r3,r2
+srli r4,r4,1
+add r4,r4,r2 ; fast mitte
+multu r6,r4,r4
+sgt r7,r6,r1
+beqz r7,incleft
+add r3,r0,r4
+j loop
+
+incleft:
+add r2,r0,r4
+j loop
+
+end:
+sw 0x200,r2
+sw 0x204,r3
+trap 0 ; der zaehlt ja nicht .. :)