以mips读取并显示2个数字

时间:2017-02-28 16:16:18

标签: assembly mips mips32 mips64

我是MIPS的新手。我想问一下如何从用户那里获取2个数字,然后显示这些数字。我知道如何为1号做这个。

.data
     promt: .asciiz "Enter one number: "
     message: .asciiz "\nNumber1 is: "

.text
 #Promt the user to enter number 1.
 li $v0, 4
 la $a0, promt
 syscall 

 #Get the user's age
 li $v0, 5
 syscall

 #Store the result in $t0
 move $t0, $v0

 #Display
 li $v0, 4
 la $a0, message
 syscall

 #Print or show the number
 li $v0, 1
 move $a0, $t0
 syscall 

1 个答案:

答案 0 :(得分:0)

只需添加main和返回地址即可从用户那里获取更多输入并打印更多数字。 如果您只需要打印两个数字,请为第二个数字创建另一个message2: .asciiz,并像第一个数字一样调用它,请检查我的代码示例。

.data
 promt: .asciiz "Enter one number: "
 message: .asciiz "\nNumber1 is: "

.text

 main:
        #Promt the user to enter number 1.
        li $v0, 4
        la $a0, promt
        syscall 

        #Get the user's age
        li $v0, 5
        syscall

        #Store the result in $t0
        move $t0, $v0

        #Display
        li $v0, 4
        la $a0, message
        syscall

        #Print or show the number
        li $v0, 1
        move $a0, $t0
        syscall

        j main
        nop

同时检查我的示例代码是代码,这打印两个数字中较大的一个。

 .text


 .data
 message: .asciiz " Enter a number\n"
 message2: .asciiz "Enter another number\n"
 main:
.text
la        $a0, message
li        $v0, 4
syscall


li        $v0, 5
syscall

move     $t0,$v0

la       $a0, message2
li       $v0,4
syscall

li       $v0, 5
syscall

move     $t1,$v0


bgt      $t0,$t1, bigger
move     $t2,$t1
b        endif
bigger:
move     $t2,$t0
endif:  
move     $a0,$t2
li $v0, 1
syscall

li       $v0,10
syscall