我正在使用MARS MIPS模拟器,并且想在程序中打印换行符。在MIPS中打印换行
.data
space: .asciiz "\n"
.text
addi $v0, $zero, 4 # print_string syscall
la $a0, space # load address of the string
syscall
除了打印换行的,它打印UUUU
。我做错了什么?
我正在使用MARS MIPS模拟器,并且想在程序中打印换行符。在MIPS中打印换行
.data
space: .asciiz "\n"
.text
addi $v0, $zero, 4 # print_string syscall
la $a0, space # load address of the string
syscall
除了打印换行的,它打印UUUU
。我做错了什么?
在打印值的代码块之后初始化新行。
,所以它读取:
addi $v0, $zero, 4 # print_string syscall
la $a0, space # load address of the string
syscall
.data
space: .asciiz "\n"
.text
如果你只是想打印一个换行符,它更简单(及略微更高效的内存),使用系统调用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
谢谢。它简单而有用。 – 2014-10-24 17:02:07
试试这个..我的作品
.data
newLine .asciiz "\n"
.text
(your code)
la $a0, newLine
addi $v0, $0, 4
syscall
我正在使用MIPS 4.5。 – Chon 2015-08-17 16:30:05
我来到这里,试图找到你问同样的问题的答案。自从你问这个问题已经有一段时间了。无论如何,无论如何,任何人都可能会看到这种饲料。
除了“space”是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
它适用于我(使用MARS 4.1) – gusbro 2012-03-26 16:05:29
我使用4.2,它不工作。 – gzg 2012-03-26 16:08:14
适用于4.2的我也适用... – gusbro 2012-03-26 16:26:36