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