比较MIPS程序集中的字符串

时间:2011-10-12 04:06:02

标签: string assembly mips string-comparison

我在数据段中定义的数组中有一堆字符串。如果我从数组中取出2个字符串,是否可以比较它们以查看哪个具有更大的mips值?我该怎么做?基本上,我希望根据字母顺序重新排列字符串。

编辑:这不是我试图获得特定问题的帮助,而是更多的一般性问题,将帮助我处理代码。谢谢!

1 个答案:

答案 0 :(得分:1)

如果是我,我会创建一个指向字符串的指针列表。也就是说,每个字符串的地址列表。然后你要编写一个子程序,比较给出指针的两个字符串。然后,当你需要交换字符串时,你只需交换实际的指针。

你想避免交换字符串本身,因为它们可能紧密包装,因此你必须做很多移动来移动内存的漏洞。指针很容易交换。如果它们都是固定长度(或更少),你可以更容易地交换字符串,那么你就不必担心移动内存孔了。

但是对指针列表进行排序确实是一个热门提示。

要比较字符串,最简单的方法是迭代每个字符串的每个字符,然后相互减去它们。如果结果为0,则它​​们是相等的。如果不是,那么如果结果是> 0,然后第一个字符串在另一个字符串之前,否则第二个字符串是较低的,你将交换它们。如果你在另一个字符串之前用尽了一个字符串,并且它们一直等到那个点,那么较短的字符串会小于较长的字符串。