2010-11-05 7 views
4

Bonjour, j'essaie d'utiliser une plage d'entiers aléatoires et les valeurs que j'obtiens ne correspondent pas à celles que j'ai définies.Assemblage MIPS - plage de nombres entiers aléatoires

par exemple:

sw $a0, 0($s0) 
li $a0, 1000 
li $a1, 3500 
li $v0, 42 #random 

donc je veux juste qu'il soit des nombres aléatoires entre 1000-3500, mais il me donne un nombre aléatoire.

Pouvez-vous s'il vous plaît m'aider à comprendre où est mon erreur.

Répondre

7

$a0 est la graine aléatoire, pas la limite inférieure. Vous devez définir $a1 à 2501 pour générer 0-2500 nombre aléatoire et ajouter 1000 au résultat.

sw $a0, 0($s0) 
li $a1, 2501 
li $v0, 42 #random 
add $a0, $a0, 1000 
+0

btw, le syscall '42' peut ne pas être disponible sur votre simulateur. consultez son manuel. –

Questions connexes