isa: manfreds sample
authorMartin Perner <martin@perner.cc>
Wed, 27 Oct 2010 15:04:21 +0000 (17:04 +0200)
committerMartin Perner <martin@perner.cc>
Wed, 27 Oct 2010 15:51:19 +0000 (17:51 +0200)
2_isa/src/umul.s [new file with mode: 0644]

diff --git a/2_isa/src/umul.s b/2_isa/src/umul.s
new file mode 100644 (file)
index 0000000..1b31acb
--- /dev/null
@@ -0,0 +1,23 @@
+int unsignedmul(int a,int b){
+       int i,c=0;      
+       for(i=0;i<b;i++){
+               c=c+a;
+       }       
+       return c;
+}
+
+
+
+
+.unsignedmul:
+       ldis r3, 0 // counter initialisieren
+       andx r2, 1 // test ob gerade oder ungerade
+       addinz r3, 1     # su // fals ungerade counter+1
+       addnz r0, r0, r1 # su // und c=c+a;
+.loop:
+       cmp r2, r3 // compare counter == b
+       addinz r3, 2     # su // counter+2
+       addnz r0, r0, r1 # su // c=c+a;
+       addnz r0, r0, r1 # su // c=c+a;
+       branchnz+ .loop   # su // jump fals noch noch nicht fertig
+       ret