0

这是我第一次编写 PCSPIM。我发现我的代码有点问题。

.data   

user_input: .asciiz "\n\nEnter an Integer for the value of n: " 
result_display: .asciiz "\nThe sum from 0 to n is "             
Greeting:   .asciiz "\n\nThank you!"    

.text
main:

#user input
li $v0, 4
la $a0, user_input
syscall

#allow user input
li $v0, 5
syscall

#store the input value into t8
move $t8, $v0

#calculation
addi $s0, $zero, $t8 

我希望使用用户输入到#calculation 部分的整数值($t8),但它最终会出错。

addi $t0, $zero, 0

loop1:

add $t0, $t0, $s0
addi $s0, $s0, -1
bne $s0, $zero, loop1
nop
nop

# Display the result
li $v0, 4
la $a0, result_display
syscall

# Print out the result
li $v0, 1
move $a0, $t0
syscall

# Greets the user
li $v0, 4
la $a0, Greeting
syscall

# Exit the program
li $v0, 10
syscall 

对不起我的英语不好。

4

1 回答 1

0

错误在于您使用“addi”指令的方式。该指令需要一个立即数(数字)值作为第三个操作数而不是体系结构寄存器传递。如果您将“addi”指令更新为“addu”,代码应该可以工作。

于 2017-05-31T09:25:11.880 回答