Вот мой код:
.data
num1: .word # num1 variable
num2: .word # num2 variable
max: .word # max variable
msg: .asciiz "Enter an integer " # msg
msg2: .asciiz "The bigger value is " # msg2
.text
main:
la $a0, msg # prints msg
li $v0, 4
syscall
la $v0, 5 # reads data
syscall
# loads address of num1 to $t0
la $t0, num1
# moves the content of $v0 to $t0
move $t0,$v0
la $a0, msg # print msg
li $v0, 4
syscall
la $v0, 5 # read data
syscall
# loads address of num1 to $t1
la $t1, num2
# moves the content of $v0 to $t1
move $t1,$v0
# loads address of max to t2
la $t2, max
# if $t0 (num1) > $t2 (num2), execute if part/label
bgt $t0,$t1,if # go to if label
# else
else:
# moves the contents of $t1 (num2) to $t2 (max)
move $t2,$t1
la $a0, msg2 # print msg2
li $v0, 4
syscall
move $a0, $t2 # print max
li $v0, 1
syscall
li $v0, 10 # exit
syscall
# if
if:
# moves contents of $t0 (num1) to $t2 (max)
move $t2,$t0
la $a0, msg2 # print msg2
li $v0, 4
syscall
move $a0, $t2 # print max
li $v0, 1
syscall
li $v0, 10 # exit
syscall
Каждый раз, когда я пытаюсь запустить этот код в QTSpim, я получаю ошибку spim: (parser) синтаксическая ошибка в строке 3 файла C:/Users/danie/Desktop/program_1.asm .word # переменная num1
Что я делаю неправильно? Спасибо
.word 0
. - person Jester   schedule 19.03.2021.word
без аргументов (если бы он собирался) зарезервировал бы 0 байтов пространства для пустого списка инициализаторов слов. Какuint32_t array[0] = {};
в C. В любом случае это явно не то, что вы хотели, так что хорошо, что ассемблер не дает вам написать что-то бесполезное. - person Peter Cordes   schedule 19.03.2021