【问题标题】:MIPS random number generator syscall 40&41MIPS 随机数生成器系统调用 40&41
【发布时间】:2021-08-26 06:08:47
【问题描述】:
# 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 的新手,所以正在尝试这段代码,但我有点卡住了。我正在尝试使用 syscall 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

【问题讨论】:

    标签: mips system-calls


    【解决方案1】:

    您可以使用服务 #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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多