Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mips printing characters

Tags:

mips

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?

like image 638
user2054534 Avatar asked Apr 15 '13 09:04

user2054534


1 Answers

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      
like image 119
Michael Avatar answered Oct 12 '22 12:10

Michael