[解決済み] MIPSでの文字列の反復処理と修正
2022-02-17 04:19:20
質問
MIPSアセンブリ言語で文字列のシーサーシフトを行うメソッドを書こうとしています。私の暗号化方法は次のとおりです。
encryptMessage:
la $s0, message #s0 will hold message that will be iterated through
lw $t1, key #s1 will hold the key to shift by
li $t0, 0 #t0 will be iterator, starting at 0
encryptionLoop:
add $s1, $s0, $t0 #$s1 = message[i]
lb $s2, 0($s1) #Loading char to shift into $s2
beq $s2, $zero, exit #Breaking the loop if we've reached the end: http://stackoverflow.com/questions/12739463/how-to-iterate-a-string-in-mips-assembly
add $s2, $s2, $t1 #Shifting the character by the key amount
la $s1, ($s2) #Changing the character in message to the shifted character
addi $t0, $t0, 1 #i++
j encryptionLoop #Going back to the beginning of the loop
しかし、暗号化されたはずのメッセージを出力するexitメソッドでは、元々入力されていたメッセージをそのまま出力してしまいます。私のコードは、私が文字を変更したことを記憶しておらず、どうすれば記憶させることができるのかがわかりません。私はこの行を疑っています。
la $s1, ($s2) #Changing the character in message to the shifted character
が関係しているようですが、どう直せばいいのかわかりません。
どのように解決するのですか?
わかりました。私が疑っていたその行は、本来なら
sb $s2 ($s1)
関連
-
[解決済み】動的構造体参照の引数は、有効なフィールド名で評価する必要がある
-
[解決済み] LC-3アセンブリ言語で文字列を印刷する (super noob)
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン