Guest User

Untitled

a guest
Jul 7th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .data
  2. w:        .asciiz "8754830094826456674949263746929"
  3. resultat: .byte 0
  4.  
  5.     .text
  6.     .globl main
  7. main:
  8.     addiu   $sp, $sp, -4
  9.     sw  $ra, 0($sp)
  10.     la  $a0, w
  11.     li  $a1, 31
  12.     jal moda
  13.     la  $s0, resultat
  14.     sw  $v0, 0($s0)
  15.     move    $a0, $v0
  16.     li  $v0, 11
  17.     syscall
  18.     lw  $ra, 0($sp)
  19.     addiu   $sp, $sp, 4
  20.     jr  $ra
  21.  
  22. nofares:
  23.     li  $t0, 0x12345678
  24.     move    $t1, $t0
  25.     move    $t2, $t0
  26.     move    $t3, $t0
  27.     move    $t4, $t0
  28.     move    $t5, $t0
  29.     move    $t6, $t0
  30.     move    $t7, $t0
  31.     move    $t8, $t0
  32.     move    $t9, $t0
  33.     move    $a0, $t0
  34.     move    $a1, $t0
  35.     move    $a2, $t0
  36.     move    $a3, $t0
  37.     jr  $ra
  38.  
  39.  
  40. moda:
  41. # ESCRIU AQUI EL TEU CODI
  42.     # k = $s2, max = $v0
  43.     addiu   $sp, $sp, -16   # salvem $ra,$s0,$s1,$s2 a la pila
  44.     sw  $ra, 0($sp)
  45.     sw  $s0, 4($sp)
  46.     sw  $s1, 8($sp)
  47.     sw  $s2, 12($sp)
  48.     addiu   $sp, $sp, -40   # reservem espai per histo[10]
  49.     move    $s0,$a0     # guardem *vec a $s0
  50.     move    $s1,$a1     # guardem num a $s1
  51.     move    $s2, $zero
  52.     li  $t7, 10
  53.  
  54. for1:  
  55.     bge     $s2, $t7, fifor1
  56.     sll     $t6,$s2,2
  57.     addu    $t6,$t6,$sp
  58.     sw  $zero,0($t6)
  59.     addiu   $s2,$s2,1
  60.     b   for1
  61. fifor1:
  62.     li  $v0,48
  63.     move    $s2, $zero
  64. for2:  
  65.     bge     $s2, $s1, fifor2
  66.     move    $a0,$sp     # preparem histo a $a0
  67.     addu    $t0,$s2,$s0 # preparem vec[k]-'0' a $a1
  68.     lb  $a1,0($t0)
  69.     addiu   $a1,$a1,-48
  70.     move    $a2,$v0     # preparem max-'0' a $a2
  71.     addiu   $a2,$a2,-48
  72.     jal     update      # crida a update
  73.     addiu   $v0,$v0,48
  74.     addiu   $s2,$s2,1
  75.     b   for2
  76. fifor2:
  77.     addiu   $sp, $sp, 40    # restaurem $ra,$s0,$s1,$s2
  78.     lw  $ra, 0($sp) # i el $sp
  79.     lw  $s0, 4($sp)
  80.     lw  $s1, 8($sp)
  81.     lw  $s2, 12($sp)
  82.     addiu   $sp, $sp, 16
  83.     jr  $ra
  84.  
  85. update:
  86. # ESCRIU AQUI EL TEU CODI
  87.     addiu   $sp,$sp,-16 # salvem $ra,$s0,$s1,$s2 a la pila
  88.     sw  $ra, 0($sp)
  89.     sw  $s0, 4($sp)
  90.     sw  $s1, 8($sp)
  91.     sw  $s2, 12($sp)
  92.     move    $s0,$a0     # guardem *h a $s0
  93.     move    $s1,$a1     # guardem i a $s1
  94.     move    $s2,$a2     # guardem max a $s2
  95.     jal     nofares     # crida a nofares
  96.     sll     $t0,$s1,2
  97.     addu    $t0,$t0,$s0
  98.     lw  $t1,0($t0)
  99.     addiu   $t1,$t1,1   # h[i]++;
  100.     sw  $t1,0($t0)
  101.     sll     $t0,$s2,2
  102.     addu    $t0,$t0,$s0
  103.     lw  $t2,0($t0)
  104.  
  105.     bge $t2,$t1,else    # if
  106.     move    $v0,$s1
  107.     b   fiif
  108. else:
  109.     move    $v0,$s2
  110. fiif:
  111.     lw  $ra, 0($sp) # restaurem $ra,$s0,$s1,$s2
  112.     lw  $s0, 4($sp) # i $sp
  113.     lw  $s1, 8($sp)
  114.     lw  $s2, 12($sp)
  115.     addiu   $sp,$sp,16
  116.     jr  $ra
Add Comment
Please, Sign In to add comment