.data f: .float 0.0 A: .float 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ret: .asciz "\n" esi: .asciz "esito=" nco: .asciz " n.cond=" .text .globl main # non necessario su SPIM: caricare exp.s e ncond.s in sequenza # a3=**T # a1=n # a2=*nc # a0=r # t0=j # t1=k num_cond: # spazio per a3,a0,t0,t1 addi sp, sp, -24 sw ra, 0(sp) # salva ra perche' usa altra f. sw s0, 4(sp) # salva fp perche' usa frame add s0, sp, x0 add a0, x0, x0 # j = 1 addi t0, x0, 1 # costante f.p. 1 addi t2, x0, 1 fcvt.s.w fa1, t2 # costante f.p. 0 addi t2, x0, 0 fmv.s.x fa0, t2 # la codifica di 0.0 e' 0...0 while_ini: slt t2, a1, t0 # j>?n bne t2, x0 while_end # se si while_end add t1, x0, x0 # k = 0 for_ini: slt t2, t1, a1 # k