2013-05-20 95 views
1

我试图在MIPS中打印几个字符串,但是当我尝试打印第一条消息时,程序会打印所有这些字符串。尝试在汇编程序中打印字符串

.data 
first_msg: .ascii "Podaj pierwsza liczbe: " 
second_msg: .ascii "Podaj druga liczbe: " 
third_msg: .ascii "Wieksza z tych liczb jest liczba " 

.text 
main: 
la $a0, first_msg 
li $v0, 4 
syscall 

li $v0, 10 
syscall 

对不起,我的语言不好,感谢您的帮忙!

+0

能否请您显示输出和系统的详细信息 – Deepu

+0

它的输出:“Podaj pierwsza liczbe:Podaj druga liczbe:Wiekszažtych liczb开玩笑liczba - 程序完成运行 - “我有一个WIN XP,我使用MARS 4.3运行.asm文件。 – user2316721

回答

2

您不会空字符串结束。使用asciiz而不是ascii

.ascii str 
Store the string in memory, but do not null-terminate it. 

.asciiz str 
Store the string in memory and null-terminate it. 

阅读this

所以,你的代码就变成了:

.data 
first_msg: .asciiz "Podaj pierwsza liczbe: " 
second_msg: .asciiz "Podaj druga liczbe: " 
third_msg: .asciiz "Wieksza z tych liczb jest liczba " 

.text 
main: 
la $a0, first_msg 
li $v0, 4 
syscall 

li $v0, 10 
syscall