MIPS if-else有打印问题

时间:2017-09-25 17:12:03

标签: assembly mips

我正在编写一个程序来确定整数是偶数还是奇数。程序首先要求用户输入一个整数,并根据整数是什么打印“偶数”和“奇数”。我在创建If-else语句时遇到问题。

声明应该是,如果$ t2 = $ t0,输出“Odd”,否则输出“Even”。这是我现在的代码不能正常工作($ t1 = 1,$ t2 =用户的整数AND'd with 1,odd_str =“Odd”,even_str =“Even”):

bne $t2, $t1, L1
    li $v0, 4
    la $a0, odd_str
    syscall
L1: 
    li $v0, 4
    la $a0, even_str
    syscall

奇数的输出是“OddEven”,偶数的输出是“偶数”。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

奇数的输出是" OddEven"

当然,因为syscall之后没有任何内容可以打印出会使程序终止的"Odd"字符串。标签不是障碍 - 它们只是程序中位置的便捷名称。

  

任何想法如何解决这个问题?

在您希望程序终止的位置,执行系统调用10.直接或跳转到代码中执行该系统调用的其他位置。