我刚刚开始学习技巧,所以我对此不太了解,但是我们正在课堂上做一个项目,我必须要求控制台输入2个整数作为输入,然后将它们相加并打印出结果。我觉得我的代码应该可以工作,但是由于某些原因,当我输入2个小数字时,它给了我一些毫无意义的大数字。例如,我输入1和1作为2个整数,得到537002100作为答案。不知道为什么。我确定我只是犯了一些愚蠢的简单错误,但我不知道这是什么。
.data
str: .asciiz "What is the first value?\n"
str2: .asciiz "What is the second value?\n"
#first word
a: .word 0
#second word
b: .word 0
#result
c: .word 0
.text
.globl main
main:
la a0, str # printrString(str)
li v0, 4
syscall
li v0, 5 # a = getInteger()
syscall
sw v0, a
li v0, 11 # ptintChar('\n')
li a0, '\n'
syscall
la a0, str2 # printString(str2)
li v0, 4
syscall
li v0, 5 # b = getInteger()
syscall
sw v0, b
la t0, a
la t1, b
la t2, c
add t2, t0, t1
sw t2, c
lw a0, c
li v0, 1 # c = printInteger(c)
syscall
li v0, 10 # exit() - stops the program
syscall
当我输入1和1时,我应该得到2,但是我得到537002100