我的汇编代码中有以下简单函数:
.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的缓冲区可能有所帮助,但我不想每次想要读取另一个文件时调整它。代码有什么问题,我需要更改或添加什么?我很感激任何帮助