-
文字列を追加するための領域を確保します。これには、データセグメント内のメモリを使用します。例えば、以下のように.dataセクション内で新しい文字列の領域を定義します。
.data str1: .asciiz "Hello, " str2: .asciiz "world!" result: .space 100
上記の例では、
str1
とstr2
は既存の文字列であり、result
は追加された文字列が格納される領域です。result
のサイズは適切に設定してください。 -
文字列を追加するための関数を作成します。以下は、
add_strings
という関数の例です。.text .globl main add_strings: la $t0, str1 # 最初の文字列のアドレスをロード la $t1, str2 # 2番目の文字列のアドレスをロード la $t2, result # 結果の文字列のアドレスをロード loop: lb $a0, ($t0) # 最初の文字列から文字をロード beqz $a0, end # 文字がヌル文字(終端)の場合、終了 sb $a0, ($t2) # 結果の文字列に文字を格納 addiu $t0, $t0, 1 # 最初の文字列のアドレスをインクリメント addiu $t2, $t2, 1 # 結果の文字列のアドレスをインクリメント j loop # ループの先頭に戻る end: jr $ra # 関数を終了し、呼び出し元に戻る main: # add_strings関数を呼び出す jal add_strings # 結果の文字列を表示する la $a0, result li $v0, 4 syscall # プログラムを終了する li $v0, 10 syscall
上記の例では、
add_strings
関数が最初の文字列と2番目の文字列を結合し、result
に格納します。その後、result
の内容を表示します。この例では、
la
命令を使用して文字列のアドレスをロードし、lb
命令とsb
命令を使用して文字を読み込み、格納します。ループを使用して最初の文字列のすべての文字を処理し、ヌル文字(終端)に達したら終了します。main
関数では、add_strings
関数を呼び出し、結果の文字列を表示してプログラムを終了します。
これで、MIPSアセンブリ言語で文字列を追加する方法を学びました。この方法を応用して、さまざまな文字列操作を行うことができます。