Ето моят код:
.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