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