Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary 在MIPS中读取二进制文件_Binary_Hex_Ascii_Mips_Pgm - Fatal编程技术网

Binary 在MIPS中读取二进制文件

Binary 在MIPS中读取二进制文件,binary,hex,ascii,mips,pgm,Binary,Hex,Ascii,Mips,Pgm,我有一张PGM照片,我正试图用MIPS打开并阅读。 当PGM文件中的值为ASCII时,一切正常。当它们是十六进制格式时,syscall 14(read)只读取几个值,然后停止,最后缓冲区中只有部分文件。 左十六进制-不工作,右ASCII-工作。相同的文件 这是我的代码(缓冲区在数据部分声明,并有足够的空间分配文件) 答案是,它实际上读取了整个文件,由于EOF符号,控制台不会显示所有内容。保存文件后,您需要再次指定文件的确切长度,以便在EOF标志之前能够保存所有内容,而不仅仅是数据。您找到什么了

我有一张PGM照片,我正试图用MIPS打开并阅读。 当PGM文件中的值为ASCII时,一切正常。当它们是十六进制格式时,syscall 14(read)只读取几个值,然后停止,最后缓冲区中只有部分文件。

左十六进制-不工作,右ASCII-工作。相同的文件

这是我的代码(缓冲区在数据部分声明,并有足够的空间分配文件)


答案是,它实际上读取了整个文件,由于EOF符号,控制台不会显示所有内容。保存文件后,您需要再次指定文件的确切长度,以便在EOF标志之前能够保存所有内容,而不仅仅是数据。

您找到什么了吗?如果你做了,你也可以回答你自己的问题。
#open a file
    li $v0, 13 #Syscall for loading files
    la $a0, image_file #Saving the address to $a0
    li   $a1, 0       # flag for reading
    li   $a2, 0       # mode is ignored
    syscall
    move $s6, $v0 #Placing the descriptor in $s6 for later-use  

#read from file
    li $v0, 14 #Syscall to read from files
    move $a0, $s6 #Moving descriptor to $a0
    la   $a1, buffer   # address of buffer to which to read
    li   $a2, 65555     # hardcoded buffer length
    syscall