那里我正在尝试编写一个MIPS程序,它将对用户输入的String和Bubble进行排序。 A在前面,Z在最后。
现在我对如何比较字符串中的每个字符感到困惑。例如:
字符串:Stackoverflow 比较S和T的前两个字母。因为S属于前面所以它保持不变并且没有交换。
如何进行下一组字符比较,以便T和A成为下一组要比较的字符。
我想我会使用lb(加载字节)指令,但我并不完全确定正确使用偏移量。
感谢您的帮助。
答案 0 :(得分:1)
提醒一下,在循环中,你必须检查当前指针是否是>比索引(基指针+字符串的长度-1),或者你也可以检查索引处的值(当前指针+ 1)是否等于0(NUL)字符串终止字符。
确保在某处(在寄存器或内存中)保留基指针的副本。
在每个循环中,您将读取当前指针当前由当前指针的偏移量为0的加载字节指向的字符,并通过带有偏移量1的当前指针的加载字节读取下一个字符。然后您可以进行比较和交换。之后,将当前指针增加1(因为ASCII中的字符是1个字节,您将仅将地址增加1个字节。)