Assembly MIPS读取输入文件和随机数生成器

Assembly MIPS读取输入文件和随机数生成器,assembly,file-io,random,mips,Assembly,File Io,Random,Mips,我目前正忙于一个使用MIPS汇编语言的项目。我试图从包含字母表中所有小写字母的文本文件中随机选择字母表字符。对于我来说,在MIPS中从文件中随机选择字符的最佳方式是什么?到目前为止,我的代码打开一个输入文件并读取它,但我对如何从文件中选择一个随机字符感到困惑。我用伪随机数生成器得到一个随机数,然后用它来挑选一个字符。如何知道字符在文件中的位置并选择它们?我读了很多关于MIPS的书,但似乎没有一本能解释这一点。请帮忙。我将在下面发布我的部分代码: .data input_file: .asciiz

我目前正忙于一个使用MIPS汇编语言的项目。我试图从包含字母表中所有小写字母的文本文件中随机选择字母表字符。对于我来说,在MIPS中从文件中随机选择字符的最佳方式是什么?到目前为止,我的代码打开一个输入文件并读取它,但我对如何从文件中选择一个随机字符感到困惑。我用伪随机数生成器得到一个随机数,然后用它来挑选一个字符。如何知道字符在文件中的位置并选择它们?我读了很多关于MIPS的书,但似乎没有一本能解释这一点。请帮忙。我将在下面发布我的部分代码:

.data
input_file: .asciiz "alphabet.txt"  #input file name
buffer: .space 1024
.txt
main:
jal random
jal read_file

read_file:
#opens input file
li $v0, 13  
la $a0, input_file
li $a1, 0   
li $a2, 0   
syscall     
move $s0, $v0   
#read from file
li $v0, 14  
move $a0, $s0   
la $a1, buffer  
li $a2, 1024    
#close the file
li $v0, 16  
move $a0, $s0   
syscall

random: 
#pseudorandom number generator (0-26)
sw $a0, 0($s1)
li $a1, 26  
li $v0, 42  
move $s2, $a0   

你能解释一下问题是什么吗?看起来您正在从文件中读取1KB并将其存储在缓冲区中,您的字符就在那里,在缓冲区中。如果你有一个随机数,比如说
$v0
,那么
la$t0,buffer
添加$t0,$t0,$v0
lw$t0,($t0)
将加载随机字符(假设为1字节字符)。你为什么需要使用随机数生成器从文件中选择一个字符,您什么时候可以生成一个介于
'a'
'z'
之间的随机数?