.data N: .word 5 X: .double 2 W: .double 1 .text lw r2, N(r0) ; r2=n l.d f1, W(r0) ; f1=w l.d f2, X(r0) ; f2=x loop: andi $t0, r2, 1 ; n&1 beqz $t0, pair ; if n pair mul.d f1, f1, f2 ; w*=x sinon pair: mul.d f2, f2, f2 dsrl r2, r2, 1 ; n>>1 bnez r2, loop ; while(n) s.d f1, W(r0) halt