Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- seed_prompt: .asciiz "Please enter a seed..."
- max_prompt: .asciiz "Please specify the max number"
- guess_prompt: .asciiz "Enter you guess"
- very_far: .asciiz "VERY FAR"
- far: .asciiz "FAR"
- near: .asciiz "NEAR"
- very_near .asciiz "VERY NEAR"
- correct: .asciiz "CORRECT"
- .text
- .globl MAIN
- MAIN:
- li $v0, 4 # printing string for max number prompt
- la $a0, max_prompt
- syscall # print statement
- li $v0, 5
- syscall # read int
- add $t0, $zero, $v0 # move max num to $t0
- li $v0, 4
- la $a0, seed_prompt
- syscall # print seed prompt
- li $v0, 5
- syscall # get seed
- add $t1, $zero, $v0 # move seed to $t1
- li $v0, 40 # syscall to give seed
- li $a0, 0 # give id
- add $a1, $zero, $t1 # give seed
- syscall
- li $v0, 42 # code for ran int gen
- li $a0, 0 # give id for pseudo rand int gen
- add $a1, $zero, $t0 # put max int in $a0
- syscall # get the rand int
- jal GET_LIMS
- LOOP:
- jal GET_INPUT
- add $a0, $zero, $v0
- jal COMPARE_NUM
- b LOOP
- GET_LIMS:
- addi $sp, $sp, -4
- sw $ra, 0($sp)
- add $s0, $zero, $a0 # move target to $s0
- mult $a0, 0.05
- mflo $s1 # 5 %
- mult $a0, 0.1
- mflo $s2 # 10 %
- mult $a0, 0.25
- mflo $s3 # 25 %
- lw $ra, 0($sp)
- addi $sp, $sp, 4
- jr $ra
- GET_INPUT:
- # save return address
- addi $sp, $sp ,-4
- sw $ra, 0($sp)
- li $v0, 4 #
- la $a0, guess_prompt
- syscall
- li $v0, 5
- syscall
- lw $ra, 0($sp)
- addi $sp, $sp ,4
- jr $ra
- COMPARE_NUM:
- addi $sp, $sp, -4
- sw $ra 0($sp)
- sub $t2, $s0, $a0
- abs $t2, $t2
- beq $a0, $s0, Exit
- ble $t2, $s1, VERY_NEAR
- blt $t2, $s2, NEAR
- blt $t2, $s3, FAR
- li $v0, 4
- la $a0, very_far
- syscall
- lw $ra, 0($sp)
- addi $sp, $sp, 4
- jr $ra
- VERY_NEAR:
- li $v0, 4
- la $a0, very_near
- syscall
- lw $ra, 0($sp)
- addi $sp, $sp, 4
- jr $ra
- NEAR:
- li $v0, 4
- la $a0, near
- syscall
- lw $ra, 0($sp)
- addi $sp, $sp, 4
- jr $ra
- FAR:
- li $v0, 4
- la $a0, far
- syscall
- lw $ra, 0($sp)
- addi $sp, $sp, 4
- jr $ra
- Exit:
- li $v0, 4
- la $a0, correct
- syscall
- li $v0, 10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement