Advertisement
Ferdinando_Ottaviani

Compito 13/02/19

Nov 30th, 2019
1,257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2. N: .word 5
  3. .text
  4. .globl main
  5. ## es 2 13 02 2019
  6.  
  7.  
  8.  
  9. ric_t:
  10.     slti $t0,$a0,3      #controllo iniziale  n<3;
  11.     beq $t0,$0,else     #if n<3
  12.     addi $v0,$0,1       # retrun 1
  13.     jr $ra      
  14.  
  15. else:
  16.     addi $sp,$sp -16    #allocazione stack
  17.     sw $ra,0($sp)       #
  18.     sw $s0,4($sp)       #$s0--> per salvare n
  19.     sw $s1,8($sp)       #$s1 --> per salvare il risultaro della mult
  20.     sw $s2,12($sp)      #$s2 --> per salvare la i della sommatoria
  21.     add $s2,$0,$0       # inizializzo i=0;
  22.     add $s0,$a0,$0      # $s0= n  
  23.    
  24. for:
  25.     beq $s0,$s2,exit    #condizione uscita del for (n == i)--> exit \\ for(i=0; i<n;i++){
  26.     addi $a0,$s2,0      #$a0=i;
  27.     jal ric_t           # T(i)
  28.     mult $s2,$v0        # i*T(i)
  29.     mflo $s1            #salvo la mult in $s1
  30.     addi $s2,$s2,1      #i++
  31.     j for               # go to for
  32.  
  33.  
  34. exit:
  35.     add $v0,$v0,$s1     # somma totale i*T(i)
  36.     lw $ra,0($sp)
  37.     lw $s0,4($sp)
  38.     lw $s1,8($sp)
  39.     lw $s2,12($sp)
  40.     addi $sp,$sp,16
  41.     jr $ra
  42.  
  43. main:
  44.     lw $a0,N
  45.     add $v0,$0,$0
  46.     jal ric_t
  47.     add $a0,$v0,$0
  48.     li  $v0,1
  49.     syscall
  50.     li $v0,10
  51.     syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement