233k views
5 votes
Write a program MARS MIPS that uses set seed function (syscall 40) according to time (syscall 30) and random number generator functions to generate 3 random numbers fi (0

User Qbunia
by
8.5k points

1 Answer

3 votes

Final answer:

The MIPS assembly program uses syscalls to seed a random number generator with the current time and generates three random numbers within the range 0 to 99, storing them in an array.

Step-by-step explanation:

You've asked for a MARS MIPS assembly program that uses syscalls to seed a pseudo-random number generator based on the current time and then generate 3 random numbers within a specific range. Below is a simple example of how you could write such a program:

.data

time_seed: .word 0
random_num: .word 0, 0, 0

text:

# Get current time for seeding the random generator
li $v0, 30 # syscall to get current time
syscall
sw $v0, time_seed # store time in time_seed

# Seed random number generator
li $a0, time_seed # load time_seed as seed
li $v0, 40 # syscall to seed random generator
syscall

# Generate 3 random numbers in the range [0,99]
li $v0, 42 # syscall for random integer
li $a1, 100 # upper limit for random number

# Get first random number
syscall
sw $v0, random_num

# Get second random number
syscall
sw $v0, random_num + 4

# Get third random number
syscall
sw $v0, random_num + 8

# Here you could write the code to print the numbers or handle them as needed

# Exit the program
li $v0, 10
syscall

This program uses syscall 30 to get the current time, and then syscall 40 to seed the random number generator with that time. It proceeds to generate three random numbers using syscall 42, which returns a random integer, and stores them in an array called 'random_num'. Adjustments can be made to handle different ranges or number of random numbers.

User Brian Scott
by
8.4k points