MIPS 随机数生成器系统调用 40&41

MIPS random number generator syscall 40&41

# SEED
# 1 - load the generator ID
# 2 - seed the generator
# First Number
# 1 - Load the generator ID
# 2 - Bound the random number generator to less than or equal to 128
# 3 - Display the message
# 4 - Display first number

我是 MIPS 的新手,所以正在尝试这段代码,但我有点卡住了。我正在尝试使用系统调用 40(set seed)&41(random int) 任何指针或建议都会有所帮助。谢谢

 .data
Message: .asciiz "\n The random number you generated was: "
genID:      .word 1
seed:    .word 1235
 .text
 .globl main

main:

#la $a0, genID
#lw $v0, seed

#la $a0, genID
li $v0, 41
li $a1, 128
syscall

li $v0, 1
syscall

您可以使用服务 #40 设置 PRNG 种子,然后使用服务 #42 从您想要的范围内的 PRNG 获取下一个数字:

.eqv genID 1  # PRNG id
 .data
Message: .asciiz "\n The random number you generated was: "
seed:    .word 1235
 .text
 .globl main

main:

li $a0, genID
lw $a1, seed
li $v0, 40
syscall

# li $a0, genID  # $a0 still has genID, 
li $v0, 42
li $a1, 129  # upper bound (not includes this number)
syscall  
move $t0, $a0

li $v0, 4
la $a0, Message
syscall

move $a0, $t0
li $v0, 1
syscall  # print PRNG number

li $v0, 10
syscall  # terminate