li $a0, '0'
li $v0, 11
syscall
所以我有这段代码来打印$ a0
中的内容在打印字符方面有什么区别 介于-1和1之间?当我尝试打印-1而不是0时,火星就会抱怨这个值。
是否有任何数学函数来处理正数的负数?
答案 0 :(得分:12)
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