Witam zastanawiam się jak działa poniższa instrukcja w asemblerze, kod sprawdza która cyfra jest większa i ją wypisuje, Cały rozumiem tylko nie rozkazów sprawdzania
# program czyta dwie liczby całkowite i drukuje (wyswietla) większą
.data
mes1: .asciiz "\n\nPodaj pierwszą liczbę całkowitą:"
mes2: .asciiz "Podaj drugą liczbę całkowitą:"
mes3: .asciiz "Większą liczbą jest:"
.text
.globl main
main:
addu $s0, $0, $ra
li $v0, 4
la $a0, mes1
syscall
li $v0, 5
syscall
addu $t1, $v0, $0
li $v0, 4
la $a0, mes2
syscall
li $v0, 5
syscall
addu $t2, $v0, $0
blt $t1, $t2, drugawieksza #jeżeli 1 jest mniejsze niż 2 to wykona się metoda drugawieksza to rozumiem
addu $t0, $t1, $0 #ale na jakiej zasadzie jest stwierdzenie że pierwsza jest większa, jak nie wykona się metoda drugawieksza to przejdzie do tego rozkazu ale nawet jak wykona się motoda drugawieksza to i tak przejdzie do tego rozkazu i wg mojej logiki nadpisze tą wartość
b wyswietlwynik
drugawieksza:
addu $t0, $t2, $0
wyswietlwynik:
li $v0, 4
la $a0, mes3
syscall
li $v0, 1
addu $a0, $t0, $0
syscall
koniec:
addu $ra, $s0, $0
jr $ra
kod sprawdza która cyfra jest większa
- cyfry nie mają wartości, nie mogą zatem być porównywane w taki sposób; Ty mówisz o liczbie.