-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
+.text
+
+unsignedmul:
+ ldis r3, 0 ; counter initialisieren
+ andx r2, 1 ; test ob gerade oder ungerade
+ addidnz r3, r3, 1 ; fals ungerade counter+1
+ adddnz r0, r0, r1 ; und c=c+a;
+loop:
+ cmp r2, r3 ; compare counter == b
+ addidnz r3, r3, 2 ; counter+2
+ adddnz r0, r0, r1 ; c=c+a;
+ adddnz r0, r0, r1 ; c=c+a;
+ brnz+ loop ; jump fals noch noch nicht fertig
ret