比较字符串MIPS中的字符

时间:2012-06-13 01:47:01

标签: string sorting assembly compare mips

那里我正在尝试编写一个MIPS程序,它将对用户输入的String和Bubble进行排序。 A在前面,Z在最后。

现在我对如何比较字符串中的每个字符感到困惑。例如:

字符串:Stackoverflow 比较S和T的前两个字母。因为S属于前面所以它保持不变并且没有交换。

如何进行下一组字符比较,以便T和A成为下一组要比较的字符。

我想我会使用lb(加载字节)指令,但我并不完全确定正确使用偏移量。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

提醒一下,在循环中,你必须检查当前指针是否是>比索引(基指针+字符串的长度-1),或者你也可以检查索引处的值(当前指针+ 1)是否等于0(NUL)字符串终止字符。

确保在某处(在寄存器或内存中)保留基指针的副本。

在每个循环中,您将读取当前指针当前由当前指针的偏移量为0的加载字节指向的字符,并通过带有偏移量1的当前指针的加载字节读取下一个字符。然后您可以进行比较和交换。之后,将当前指针增加1(因为ASCII中的字符是1个字节,您将仅将地址增加1个字节。)