Я сейчас изучаю ассемблер и застрял с использованием функций.По сути, я пытаюсь получить два числа путем ввода и выполнить некоторые операции, например, добавить или или и xor.Моя проблема в том, что я получил это без вызова функций.Но когда я собрал весь код (Add или or и xor), программа просто выполнила первую операцию.
Я не знаю, как объявлять переменные и использовать их.Вот код, над которым я работал.
main:
# Get 1 number from user, put into $t0
li $v0, 5 #load syscall read_int into $v0
syscall #make the syscall
move $t0, $v0 #move the number read into $t0
# Get 2 number from user, put into $t1
li $v0, 5 #load syscall read_int into $v0
syscall #make the syscall
move $t1, $v0 #move the number read into $t1
add $t2, $t0, $t1 #make the sum
#Print $t2
move $a0, $t2 #move the number to print into $a0
li $v0, 1 #load syscall print_int into $v0
syscall #make the syscall
li $v0, 10 #syscall code 10 to exit
syscall #make the syscall
С другой стороны, пытаясь объявить переменные num1 и num2, я застрял:
.data
num1: .byte 8
num2: .byte 8
.text
main:
add $v0, num1, num2
move $a0, $t2 #move the number to print into $a0
li $v0, 1 #load syscall print_int into $v0
syscall #make the syscall
Я имел отношение к языку C, чтобы попытаться понять, например:
int main (...)
sum(num1, numm2);
sum (num1, num2){
result = num1 + num2;
return result;
}
и так далее ...