J'ai pu obtenir l'entrée de l'utilisateur comme indiqué dans mon code mais je suis désespérément incapable d'obtenir le plus petit nombre. Merci beaucoup ...Comment déterminer la plus petite valeur de trois nombres entiers dans MIPS sans utiliser de boucles
Voici les instructions pour cela. "Ecrire un programme d'assemblage pour lire trois entiers signés 32 bits à partir de l'utilisateur Déterminez le plus petit de ces trois nombres et affichez ce résultat N'utilisez pas de boucles Invitez l'utilisateur pour chaque entier entré."
.data
Msg1: .asciiz "Enter the first integer: "
Msg2: .asciiz "Enter the second integer: "
Msg3: .asciiz "Enter the third integer: "
Msg4: .asciiz "the the smallest numberis: "
.text
# Print the first message
li $v0, 4
la $a0, Msg1
syscall
# Prompt the user to enter the first integer
li $v0, 5
syscall
# Store the first integer in $t0
move $t0, $v0
# Print the second message
li $v0, 4
la $a0, Msg2
syscall
# Prompt the user to enter the second integer
li $v0, 5
syscall
# Store the first integer in $t1
move $t1, $v0
# Print the third message
li $v0, 4
la $a0, Msg3
syscall
# Prompt the user to enter the third interger
li $v0, 5
syscall
# Store the first integer in $t0
move $t2, $v0
# Determine the smallest Number
slt $s0, $t1, $t0
beq $s0, $zero, L1
Êtes-vous toujours autorisé à effectuer des branchements? Si c'est le cas, il est assez facile de sauter conditionnellement sur une instruction de mouvement pour obtenir le maximum des deux premiers, puis recommencez. Sinon, recherchez des séquences min/max sans branches. (IDK si MIPS a 'cmov', ou si vous devez le construire avec SUB/SRA/AND). –
pouvez-vous le faire pour deux nombres? Ensuite, après que vous avez le plus petit de deux, au lieu d'imprimer le résultat, faites le plus petit de deux (le plus petit résultat précédent vs troisième valeur), et vous avez le plus petit de trois. C'est juste quelques lignes de code de plus. – Ped7g
min (a, b, c) = min (min (a, b), c) – Tommylee2k