내 코드에 표시된대로 사용자 입력을 얻을 수 있었지만 필자는 가장 작은 숫자를 얻지 못했습니다. 고마워요 ...루프를 사용하지 않고 MIPS에서 세 정수의 가장 작은 값을 결정하는 방법
다음은 지침입니다.
"사용자로부터 3 개의 32 비트 부호있는 정수를 읽는 어셈블리 프로그램을 작성하십시오.이 세 가지 숫자 중 가장 작은 것을 판별하고 결과를 표시합니다. 루프를 사용하지 마십시오. 입력 된 각 정수에 대해 사용자에게 프롬프트하십시오."
.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
분기 할 수 있습니까? 그렇다면 이동 명령을 조건부로 건너 뛰고 처음 두 개 중 최대 값을 얻은 다음 다시 수행하는 것이 매우 간단합니다. 그렇지 않으면 분기없는 최소/최대 시퀀스를 찾습니다. (MIPS가'cmov '을 가지고 있거나 SUB/SRA/AND에서 그것을 빌드해야만한다면 IDK). –
두 개의 숫자에 대해이 작업을 수행 할 수 있습니까? 그런 다음 2에서 가장 작은 값을 얻은 후 결과를 인쇄하는 대신 2에서 다시 작게 (이전 결과 대 제 3의 값에서 가장 작음) 3에서 가장 작습니다. 단지 몇 줄의 코드 일뿐입니다. – Ped7g
min (a, b, c) = min (min (a, b), c) – Tommylee2k