Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
416 views
in Technique[技术] by (71.8m points)

mips printing characters

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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      

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...