Guest User

Untitled

a guest
Aug 19th, 2018
96
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.        # k = $s2, max = $v0
  42.         addiu   $sp, $sp, -16   # salvem $ra,$s0,$s1,$s2 a la pila
  43.         sw      $ra, 0($sp)
  44.         sw      $s0, 4($sp)
  45.         sw      $s1, 8($sp)
  46.         sw      $s2, 12($sp)
  47.         addiu   $sp, $sp, -40   # reservem espai per histo[10]
  48.         move    $s0, $a0         # guardem *vec a $s0
  49.         move    $s1, $a1         # guardem num a $s1
  50.         move    $s2, $zero
  51.    
  52.     li  $t0, 10
  53. for:    bge     $s2, $t0, ffor
  54.     sll     $t3, $s2, 2
  55.     addu    $t3, $t3, $sp
  56.     sw  $zero, 0($t3)
  57.     addiu   $s2, $s2, 1
  58.     b for
  59.  
  60. ffor:   li  $t2, '0'
  61.     li  $s2, 0
  62.  
  63. for2:   bge     $s2, $s1, ffor2
  64.     move    $a0, $sp
  65.     addu    $a1, $s0, $s2
  66.     lb  $a1, 0($a1)
  67.     li  $t3, '0'
  68.     subu    $a1,$a1,$t3
  69.     subu    $a2,$t2,$t3
  70.     jal update
  71.     addiu   $t2,$v0,'0'
  72.     addiu   $s2,$s2,1
  73.     b   for2
  74.  
  75. ffor2:  move    $v0, $t2
  76.         addiu   $sp, $sp, 40    # restaurem $ra,$s0,$s1,$s2
  77.         lw      $ra, 0($sp)     # i el $sp
  78.         lw      $s0, 4($sp)
  79.         lw      $s1, 8($sp)
  80.         lw      $s2, 12($sp)
  81.         addiu   $sp, $sp, 16
  82.         jr      $ra
  83.  
  84. update:
  85.     addiu   $sp, $sp, -16
  86.     sw  $s0, 0($sp)
  87.     sw  $s1, 4($sp)
  88.     sw  $s2, 8($sp)
  89.     sw  $ra, 12($sp)
  90.     move    $s0, $a0
  91.     move    $s1, $a1
  92.     move    $s2, $a2
  93.         jal     nofares         # crida a nofares
  94.     sll     $t6, $s1, 2
  95.     sll $t7, $s2, 2
  96.     addu    $t0, $s0, $t6
  97.     addu    $t1, $s0, $t7
  98.     lw  $t3, 0($t0)
  99.     addiu   $t4, $t3, 1
  100.     sw  $t4, 0($t0)
  101.     lw  $t5, 0($t1)
  102. if: ble     $t3, $t5, else
  103.     move    $v0, $s1
  104.     b fiif
  105. else:
  106.         move    $v0,$a2
  107. fiif:
  108.     lw  $s0, 0($sp)
  109.     lw  $s1, 4($sp)
  110.     lw  $s2, 8($sp)
  111.     lw  $ra, 12($sp)
  112.     addiu   $sp, $sp, 16
  113.         jr      $ra
Add Comment
Please, Sign In to add comment