6
li $a0, '0'
li $v0, 11
syscall

所以我有这段代码来打印 $a0 中的内容

就打印出来的字符而言,-1 和 1 有什么区别?当我尝试打印 -1 而不是 0 时,火星只会抱怨该值。

是否有任何数学函数可以用正数来处理负数?

4

1 回答 1

13

Syscall 11 打印一个字符。字符串“0”和“1”都由一个字符组成,但“-1”由两个字符组成('-'和'1')。

您可以将 -1 打印为两个单独的字符:

li $a0, '-'
li $v0, 11    # print_character
syscall
li $a0, '1'
li $v0, 11    # print_character
syscall

或作为字符串:

 li $v0, 4    # print_string    
 la $a0, str     
 syscall          

 str:  .asciiz "-1"

或作为整数:

 li $v0, 1    # print_int     
 li $a0, -1     
 syscall      
于 2013-04-15T09:24:47.623 回答