-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;
+ ldis r3, 0 // counter initialisieren
+ andx r2, 1 // test ob gerade oder ungerade
+ addinzd r3, 1 // fals ungerade counter+1
+ addnzd r0, r0, r1 // 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
+ cmp r2, r3 // compare counter == b
+ addinzd r3, 2 // counter+2
+ addnzd r0, r0, r1 // c=c+a;
+ addnzd r0, r0, r1 // c=c+a;
+ branchnz+d .loop // jump fals noch noch nicht fertig
ret