li $a0, '0'
li $v0, 11
syscall
so I have this code to print what is in $a0
In terms of characters being printed out what is the difference between -1 and 1? When I try to print -1 instead 0, mars just complains about the value.
Is there any mathematical function to handle negative numbers in terms of positive numbers?
Syscall 11 prints one character. The strings "0" and "1" both consist of one character each, but "-1" consists of two characters ('-' and '1').
You could either print -1 as two individual characters:
li $a0, '-'
li $v0, 11 # print_character
syscall
li $a0, '1'
li $v0, 11 # print_character
syscall
Or as a string:
li $v0, 4 # print_string
la $a0, str
syscall
str: .asciiz "-1"
Or as an integer:
li $v0, 1 # print_int
li $a0, -1
syscall
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With