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
# 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