为什么文件的最后一行总是用我的mips汇编代码读取两次?

时间:2017-12-19 20:37:52

标签: assembly mips

我的汇编代码中有以下简单函数:

.data
file:   .asciiz "file"
buffer: .space  4096

.text
main:



# READ FILE
li $v0, 13
la $a0, file
li $a1, 0
li $a2, 0
syscall

# SAVE FD
move $t1, $v0

# READ TO BUFFER
li $v0, 14
move $a0, $t1
la $a1, buffer
li $a2, 4096
syscall

move $t0, $v0

# PRINT TEXT
li $v0, 4
move $a0, $a1
syscall

# CLOSE FILE
li $v0, 16
move $a0, $t1 # fd
syscall

li $v0, 10
syscall
move $v0, $t0

哪个有效,但不是我想要的方式。它读取并打印所有内容,但文件的最后一行是两次,而第二行甚至没有完成,前几个字符丢失了,我不明白为什么。我的意思是,调整4096的缓冲区可能有所帮助,但我不想每次想要读取另一个文件时调整它。代码有什么问题,我需要更改或添加什么?我很感激任何帮助

0 个答案:

没有答案