将两个用户输入的数字相减,并显示结果

Subtracting two user input numbers, with a move and display the result

我是 MIPS 的新手,我正在使用 MARS。我不能走对,当我执行它时,它给了我一些 nuts o number。这是我目前的情况,如有任何帮助,我们将不胜感激。

.data

   message1: .asciiz "Enter the any number to subtract :"
   message2: .asciiz "\nEnter the any number to subtract :"
   n1 :      .word 0
   n2 :      .word 0
   message3: .asciiz  "\nThe subtraction of the two numbers is "

.text 
main:   
li $v0 4        #print out message1
la $a0 message1
syscall

li $v0 5        #read message1 as number1
syscall

sw $v0 n1       #store number

li $v0 4        #print out message2
la $a0 message2
syscall

li $v0 5        #read message2 as number2
syscall

sw $v0 n2       #store number

li $v0 4
la $a0 message3
syscall

lw $t0 n1
lw $t1 n2

sub $t0, $v0, $v0   #   t0 = number1 s1 - number2 s2

li $v0, 1       #   print integer
move $t0, $a0       #   move t0 to a0 

syscall         #   run

您的代码在此处 sub $t0, $v0, $v0 之前运行良好。当您减去时,您应该将结果放入参数寄存器 $a0 然后您可以使用 move 将结果放入return 注册 $v0 打印。

按照以下方式更改它们。

sub $t2, $t0, $t1   #   t2 = t0 - t1
move $a0, $t2       #   copy t2 to a0
li $v0, 1           #   print integer
syscall             #   

执行此减法的另一种方法是您根本不需要 .wordlw。如下

        .data

        message1: .asciiz "Enter the any number to subtract :"
        message2: .asciiz "\nEnter the any number to subtract :"
        message3: .asciiz "\nThe subtraction of the two numbers is "

        .text
        main:
            li $v0 4        #print out message1
            la $a0 message1
            syscall

            li $v0 5        #read message1 as number1
            syscall
            move $t0,$v0    # set $t0 to the content of $v0

            li $v0 4        #print out message2
            la $a0 message2
            syscall

            li $v0 5        #read message2 as number2
            syscall

            move $t1,$v0
            li $v0 4
            la $a0 message3
            syscall

            sub $a0, $t0, $t1   #   t0 = number1 t1 = number2

            li $v0, 1       #   print integer
            syscall         #   run