Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
mars mips查找字符串中的最低和最高字符_Mips_Mars Simulator - Fatal编程技术网

mars mips查找字符串中的最低和最高字符

mars mips查找字符串中的最低和最高字符,mips,mars-simulator,Mips,Mars Simulator,我已尝试将加密输出移动到其他临时位置。注册,然后我将这些字节加载到另一个新的temp中。登记将地址重置回0x10010000,然后让第三个临时寄存器从“a”开始,如果它不等于该字母,则将地址相加,以查看每个字节中是否有一个“a”,如果没有,则将其添加到null或换行符字节,然后将“a”添加到“b”等。然后我有第四个临时寄存器。注册对“z”执行相同的操作,但不是将“z”加起来,而是将其减去。我试过这种方法,但似乎不对。这是我正在做的一个例子 la $t6,str1

我已尝试将加密输出移动到其他临时位置。注册,然后我将这些字节加载到另一个新的temp中。登记将地址重置回0x10010000,然后让第三个临时寄存器从“a”开始,如果它不等于该字母,则将地址相加,以查看每个字节中是否有一个“a”,如果没有,则将其添加到null或换行符字节,然后将“a”添加到“b”等。然后我有第四个临时寄存器。注册对“z”执行相同的操作,但不是将“z”加起来,而是将其减去。我试过这种方法,但似乎不对。这是我正在做的一个例子

 la $t6,str1                     #str1 is the string I just encrypted and now  lb                                 moving it to a new register $t6.

 lb $t2,($t6)                    # I am loading the address bytes to this new temp.                                register $t2

 li $t8, 'a'                     # making $t8 to be 'a'

 i: ble $t6, 0x10010000,i1       #I am resetting the address back to zero

  subi $t6,$t6,1

 j i  


  i1: beq $t8,$t2, kvt          # I am testing to see if $t8 equals $t2

      addi $t6,$t6,1            # if not add the address by 1

      beq $t2,0x00,i2           # which ever one comes first, branch it to i2

      beq $t2,'/n',i2            

i2: addi $t8,$t8,1              # adds up t8

      j i              

kvt: sb $t8,($t6)               #now I am saving the new value of t6

     li $v0,4

    lb $a0,($t8)               #load the byte value of t8, and have it print.
     syscall               

我必须将str1
str1
加载到另一个字符串中吗<代码>范围:。空格2,如果是,如何将
str1
的字符分配到该范围并让其读取值

下面是一个简单循环的示例:

.data
array: .word 1,2,3,4
size: .word 16


.text

MAIN:

la $t0 array
li $t1 0


lw $t2 array #max
lw $t3 array #min
lw $t5 size

LOOP:
add $t0 $t0 $t1
lw $t4 ($t0)

bge $t4 $t2 MAX
j MINTEST

Max:
move $t2 $t4

MINTEST:
blt $t4 $t2 MIN

j ENDLOOP

MIN:
move $t3 $t4

ENDLOOP:

addi $t1 $t1 4
beq $t1 $t5 END
j LOOP

END:

i
循环的意义是什么?为什么不干脆
li$t6,0x10010000
?而且,
'/n'
看起来很奇怪。您的意思是“
”\n“
”?查找最小/最大元素时,可能会将整个字符串按字母表中的字符数进行多次遍历,这似乎是一种非常低效的方法。只需检查字符串一次,检查每个字符是否小于/大于当前的最小/最大值。Michael,我该怎么做?我如何通过一次字符串并打印出最小值和最大值来测试它。这是我唯一能想到的搜索它的最小值和最大值并打印出来的方法。所有这一切都将进入一个无限循环。而且,用户必须输入字符a-z,所以在该范围内的任何东西。