SHARE
TWEET

Untitled

a guest Oct 14th, 2019 65 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.     seed_prompt:    .asciiz "Please enter a seed..."
  3.     max_prompt:     .asciiz "Please specify the max number"
  4.   guess_prompt:   .asciiz "Enter you guess"
  5.     very_far:       .asciiz "VERY FAR"
  6.     far:            .asciiz "FAR"
  7.     near:           .asciiz "NEAR"
  8.     very_near       .asciiz "VERY NEAR"
  9.     correct:        .asciiz "CORRECT"
  10.  
  11. .text
  12.  
  13. .globl MAIN
  14.  
  15. MAIN:
  16.     li  $v0,    4                   # printing string for max number prompt
  17.     la  $a0,    max_prompt
  18.     syscall                         # print statement
  19.     li  $v0,    5
  20.     syscall                         # read int
  21.     add $t0,    $zero,  $v0         # move max num to $t0
  22.     li  $v0,    4
  23.     la  $a0,    seed_prompt
  24.     syscall                         # print seed prompt
  25.     li  $v0,    5
  26.     syscall                         # get seed
  27.     add $t1,    $zero,  $v0         # move seed to $t1
  28.     li  $v0,    40                  # syscall to give seed
  29.     li  $a0,    0                   # give id
  30.     add $a1,    $zero,  $t1         # give seed
  31.     syscall
  32.     li  $v0,    42                  # code for ran int gen
  33.     li  $a0,    0                   # give id for pseudo rand int gen
  34.     add $a1,    $zero,  $t0         # put max int in $a0
  35.     syscall                         # get the rand int
  36.  
  37.     jal GET_LIMS
  38.  
  39.     LOOP:
  40.         jal   GET_INPUT
  41.         add     $a0,    $zero,  $v0
  42.  
  43.         jal   COMPARE_NUM
  44.         b       LOOP
  45.  
  46. GET_LIMS:
  47.     addi    $sp,    $sp,    -4
  48.     sw      $ra,    0($sp)
  49.  
  50.     add     $s0,    $zero,  $a0  # move target to $s0
  51.  
  52.     mult    $a0,    0.05
  53.     mflo    $s1                     # 5 %
  54.  
  55.     mult    $a0,    0.1
  56.     mflo    $s2                     # 10 %
  57.  
  58.     mult    $a0,    0.25
  59.     mflo    $s3                     # 25 %
  60.  
  61.   lw    $ra,  0($sp)
  62.   addi  $sp,  $sp,  4
  63.   jr    $ra
  64.  
  65. GET_INPUT:
  66.   # save return address
  67.     addi $sp, $sp ,-4
  68.     sw $ra, 0($sp)
  69.  
  70.     li $v0, 4            #
  71.     la $a0, guess_prompt
  72.     syscall
  73.     li $v0, 5
  74.     syscall
  75.     lw $ra, 0($sp)
  76.     addi $sp, $sp ,4
  77.     jr $ra
  78.  
  79. COMPARE_NUM:
  80.    addi $sp, $sp, -4
  81.    sw $ra 0($sp)
  82.  
  83.    sub $t2, $s0, $a0
  84.    abs $t2, $t2
  85.  
  86.    beq $a0, $s0, Exit
  87.    ble $t2, $s1, VERY_NEAR
  88.    blt $t2, $s2, NEAR
  89.    blt $t2, $s3, FAR
  90.  
  91.    li  $v0,    4
  92.    la  $a0,    very_far
  93.    syscall
  94.  
  95.    lw      $ra, 0($sp)
  96.    addi    $sp, $sp, 4
  97.    jr      $ra
  98.  
  99.    VERY_NEAR:
  100.        li  $v0,    4
  101.        la  $a0,    very_near
  102.        syscall
  103.  
  104.        lw      $ra, 0($sp)
  105.        addi    $sp, $sp, 4
  106.        jr      $ra
  107.  
  108.    NEAR:
  109.        li  $v0,    4
  110.        la  $a0,    near
  111.        syscall
  112.  
  113.        lw      $ra, 0($sp)
  114.        addi    $sp, $sp, 4
  115.        jr      $ra
  116.  
  117.    FAR:
  118.        li  $v0,    4
  119.        la  $a0,    far
  120.        syscall
  121.  
  122.        lw      $ra, 0($sp)
  123.        addi    $sp, $sp, 4
  124.        jr      $ra
  125.  
  126.   Exit:
  127.       li  $v0,    4
  128.       la  $a0,    correct
  129.       syscall
  130.       li  $v0,    10
  131.       syscall
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top