1

这是我的代码。我希望它输出“嗨,在这里输入:”。但相反,它会同时打印“嗨,请在此处输入:”和“您好,请在此处输入:”。我该如何解决?

            .data
str_one:        .ascii      "Hi, input here: \n" 
str_two:        .ascii      "Hello, input here: \n" 

            .text

main:       

    li $v0, 9           #memory allocation syscall
    li $a0, 12
    syscall

    move $s0, $v0          

    li $v0, 4
    la $a0, str_one        #Prompt string
    syscall

    li $v0, 8          #Read string
    la $a0, ($s0)
    li $a1, 8
    syscall
4

1 回答 1

1

你没有空终止你的字符串。改用.asciiz

str_one:        .asciiz      "Hi, input here: \n" 
str_two:        .asciiz      "Hello, input here: \n" 

或者,使用显式零:

str_one:        .ascii      "Hi, input here: \n" 
                .byte       0
str_two:        .ascii      "Hello, input here: \n" 
                .byte       0
于 2013-07-23T00:33:43.433 回答