Попытка сделать простой оператор if для школьного задания.Если регистр равен 0, то
.data
Origin:
.asciiz "X and Y are at the origin!!!" # string statment for the origin
inputX:
.asciiz "What is the x coordinate?"
test:
.asciiz "this is a test"
.text
main:
la $a0, inputX #puts the inputX string into address 0
li $v0, 4 # prints a string at address 0
syscall
li $v0 , 5 # reads an input integer
syscall
move $s0, $v0# moves the value from the input integer into $s0 (x value)
beqz $s0, EndIf # should be if input we entered was 0 than go to EndIf label
li $v0, 10
syscall
EndIf: la $a0, test #print out our test string
li $v0, 4
syscall
Из того, что я понимаю. Beqz проверяет, равен ли значение $ s0. Из этого он должен пойти на мой лейбл.
Это та часть, которая меня смущает. Куда идет эта этикетка? Как он решает, когда мы не на этикетке и хотим вернуться к исходному коду?
В принципе, если мой вход для й равно 0, я хочу, чтобы распечатать мою «тест» строка
занимает всего несколько секунд, чтобы написать функцию c, скомпилировать и дизассемблировать, чтобы узнать, как это делает компилятор ... –