【问题标题】:Printing newline in MIPS在 MIPS 中打印换行符
【发布时间】:2012-04-10 03:41:35
【问题描述】:

我正在使用 MARS MIPS 模拟器,我想在我的程序中打印一个换行符。

.data
space: .asciiz "\n"
.text

    addi $v0, $zero, 4  # print_string syscall
    la $a0, space       # load address of the string
    syscall

它不打印换行符,而是打印UUUU。我做错了什么?

【问题讨论】:

  • 它对我来说很好用(使用 MARS 4.1)
  • 我使用的是 4.2,但它不工作。
  • 尝试重新安装您的 JRE,或者更好地更新它。

标签: mips system-calls


【解决方案1】:

如果您只是想打印换行符,使用系统调用 11 打印单个字符会更简单(并且内存效率略高)。

.text
main:   addi $a0, $0, 0xA #ascii code for LF, if you have any trouble try 0xD for CR.
        addi $v0, $0, 0xB #syscall 11 prints the lower 8 bits of $a0 as an ascii character.
        syscall

【讨论】:

    【解决方案2】:

    我来这里是为了找到您提出的同一个问题的答案。你问这个问题已经有一段时间了。无论如何,让我为将来可能会查看此提要的任何人回答。

    您的代码中的其他一切都很好,除了“空格”是 Mips 中的保留字。我认为它用于创建数组。所以,如果你用其他词替换空格,我使用“换行符”。它按应有的方式工作。

    .data
     newline: .asciiz "\n"
    .text
    
    li $v0, 4       # you can call it your way as well with addi 
    la $a0, newline       # load address of the string
    syscall
    

    【讨论】:

      【解决方案3】:

      在打印值的代码块之后初始化新行。

      原来是这样的:

       addi $v0, $zero, 4  # print_string syscall
          la $a0, space       # load address of the string
          syscall
      
      .data
      space: .asciiz "\n"
      .text
      

      【讨论】:

        【解决方案4】:

        试试这个..它对我有用

             .data
        newLine  .asciiz "\n"
        
             .text
             (your code)
        
             la     $a0, newLine
             addi   $v0, $0, 4
             syscall
        

        【讨论】:

          【解决方案5】:

          此代码使用 ASCII 值 10syscall 11 打印一个换行符,该服务打印一个字符:

          .data
          .text
          .globl main
          main:
              li $v0 11  # syscall 11: print a character based on its ASCII value
              li $a0 10  # ASCII value of a newline is "10"
              syscall
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多