【发布时间】:2016-09-28 05:01:03
【问题描述】:
我在 MIPS 中有以下代码,我在火星模拟器中运行它 该代码打开一个文本文件进行编写 结果的问题是它不断打印我提供的所有字符串 我的代码没有打印任何新行我试图将新行与字符串分开它不起作用它保持打印空间而不是新行 这是我的代码
.data
fout: .asciiz "testout.txt" # filename for output
buffer: .asciiz "The quick brown fox jumps over the lazy dog."
buffer1: .asciiz "\n"
.text
.globl main
main:
###############################################################
# Open (for writing) a file that does not exist
li $v0, 13 # system call for open file
la $a0, fout # output file name
li $a1, 1 # Open for writing (flags are 0: read, 1: write)
li $a2, 0 # modeA is ignored
syscall # open a file (file descriptor returned in $v0)
move $s6, $v0 # save the file descriptor
###############################################################
# Write to file just opened
li $v0, 15 # system call for write to file
move $a0, $s6 # file descriptor
la $a1, buffer # address of buffer from which to write
li $a2, 46 # hardcoded buffer length
syscall # write to file
###############################################################
# Write to file just opened
li $v0, 15 # system call for write to file
move $a0, $s6 # file descriptor
la $a1, buffer1 # address of buffer from which to write
li $a2, 1 # hardcoded buffer length
syscall # write to file
###############################################################
# Write to file just opened
li $v0, 15 # system call for write to file
move $a0, $s6 # file descriptor
la $a1, buffer # address of buffer from which to write
li $a2, 44 # hardcoded buffer length
syscall # write to file
###############################################################
# Close the file
li $v0, 16 # system call for close file
move $a0, $s6 # file descriptor to close
syscall # close
li $v0,10
syscall
【问题讨论】:
标签: assembly mips newline mars-simulator