将多个地址/即时消息加载到MIPS程序集中?

时间:2016-02-15 19:11:25

标签: assembly mips

我试图找出以下代码:

 .data
  strInput: .space 50
  strFOO: .asciiz "foo\n"
  strAskInput: .asciiz "input your testable string: "

 .text
            li $v0, 4
            la $a0, strAskInput
            syscall

            li $v0, 8
            la $a0, strInput            
            li $a1, 50                              
            syscall         

            la $a0, strFOO
            li $a1, 50

            la $a0, strInput
            la $a1, strFOO

            ....rest of code

基本上,用户输入一个字符串,然后在其余代码中用字符串Foo检查。

我不明白的是,这段代码会用字符串foo覆盖$ a0(我们输入的字符串),但稍后会把它带回来(整个代码都有效)并正确检查它!

另外,将立即数50加载到$ a1有什么用?

1 个答案:

答案 0 :(得分:3)

br不包含输入的字符串;它包含系统调用写入字符串的地址。而且,正如@Jester评论的那样,wpautop是为该字符串留出的空间长度。