0

そこで私は現在、ユーザーが入力した文字列をソートし、バブルソートするMIPSプログラムを作成しようとしています。Aが前にあり、Zが最後にあります。

今のところ、文字列内の個々の文字をどのように比較できるかについて、ちょっと混乱しています。したがって、たとえば:

文字列:Stackoverflow最初の2文字のSとTを比較します。Sは前面にあるため、そのまま残り、スワップは発生しません。

比較する次の文字セットに移動して、TとAが次に比較するセットになるようにするにはどうすればよいでしょうか。

lb(バイトのロード)命令を使用すると思いますが、オフセットを正しく使用するかどうかは完全にはわかりません。

助けてくれてありがとう。

4

1 に答える 1

1

念のため、ループでは、現在のポインターがインデックス (ベース ポインター + 文字列の長さ - 1) よりも大きいかどうかを確認する必要があります。または、インデックス (現在のポインター + 1) の値が次と等しいことを確認することもできます。 0 (NUL) 文字列終了文字かどうか。

ベース ポインターのコピーをどこかに (レジスターまたはメモリ内に) 保持してください。

各ループでは、オフセット 0 の現在のポインターでロード バイトによって現在のポインターが現在指している文字を読み取り、オフセット 1 の現在のポインターでロード バイトによって次の文字を読み取ります。その後、比較とスワップを行うことができます。その後、現在のポインターを 1 増やします (ASCII の文字は 1 バイトなので、アドレスを 1 バイトだけ増やします)。

于 2012-06-13T02:26:49.363 に答える