.data q: .float 0.6931472, 0.9333737, 0.9888778, 0.9984959, 0.9998293, 0.9999833, 0.9999986, 0.9999999 mz: .word 11111 cf1: .float 1.0 c970: .word 970000 spa: .asciz " " cf232: .float 2.3283062e-10 c31883: .word 31883 c65535: .word 65535 .globl main .text #----------------------------------- rnd: # &cf232 la t2, cf232# &c31883 la t3, c31883# &c65535 la t4, c65535# &mz la t5, mz flw fa0, 0(t2)# 2.32... lw t6, 0(t3)# 31883 lw a4, 0(t4)# 65535 lw a6, 0(t5)# mz and a5, a6, a4# ()*31883 mul a5, a5,t6 srli a6,a6, 16# mz>>16 add a6, a6, a5# ()+() ex addu sw a6, 0(t5)# update mz #fmv.s.x ft1, a6# mz into c1 fcvt.s.w ft1, a6# &cf1 la t5, cf1 flw ft3, 0(t5)# 1.0 fadd.s ft1, ft1, ft3# 1.0+mz fmul.s fa0, ft1, fa0# result jr ra #----------------------------------- # f12=avg, s0=i, # f20=a,f22=u,f24=umin,f26=ustar # f28=1.0 gexp: #----------------------------------- # PROLOGO #alloco frame addi sp, sp, -32 sw ra, 28(sp)#salvo old-ra sw s0, 24(sp)#salvo old-fp sw s0, 20(sp)#salvo s0 fsw fs1, 16(sp)#salvo f20 fsw fs3, 12(sp)#salvo f22 fsw fs5, 8(sp)#salvo f24 fsw fs7, 4(sp)#salvo f26 fsw fs9, 0(sp)#salvo f28 add s0, x0, sp# &cf1 la t1, cf1 flw fs9, 0(t1)# f28=1.0 fmv.s.x fs1, x0# a=0.0 jal rnd# f0=rnd() fmv.s fs3, fa0# &q la t0, q flw ft1, 0(t0)# q[0] for1ini: fadd.s fs3, fs3, fs3# 1.0