Assembly 更新读取文件启动MIPS的位置

Assembly 更新读取文件启动MIPS的位置,assembly,mips,Assembly,Mips,我正在尝试为MIPS中的位图编写一个RLE。我遇到的问题是,我只是在读取文件本身后才发现文件大小,而我似乎无法理解如何从文件的中间读取,使其递归 例如:我发现文件头中有X个字节,我知道它有54个字节。但后来我想跳转前1078个字节,从一个字到另一个字(4个字节,32位),或者至少能够创建variable.space将文件放入内存 li $v0, 14 # read from file move $a0, $s0 # fd of file to

我正在尝试为MIPS中的位图编写一个RLE。我遇到的问题是,我只是在读取文件本身后才发现文件大小,而我似乎无法理解如何从文件的中间读取,使其递归

例如:我发现文件头中有X个字节,我知道它有54个字节。但后来我想跳转前1078个字节,从一个字到另一个字(4个字节,32位),或者至少能够创建variable.space将文件放入内存

    li $v0, 14          # read from file
    move $a0, $s0           # fd of file to be compressed
    la $a1, header
    li $a2, 54
    syscall

    bne $v0, 54, Erro2      # Test

    lw $s2, header+2        #size of file in bytes
    lw $s3, header+10       #offset of pixel array
我需要的是能够读取像素阵列来压缩它。但是我可以弄清楚文件描述符是如何工作的,如果可能的话,可以移动它的指针,或者至少在que.text已经启动之后创建一个.data


我用的是MARS4_5

我建议你自己去拿。据我所知,没有
seek
syscall。然而,有
sbrk
用于在堆上分配内存。我建议您自己去做。据我所知,没有
seek
syscall。但是,有
sbrk
用于在堆上分配内存。