Есть ли способ убедиться, что мои байты загружаются правильно, когда я использую команду sb в MIPS?

#mips #mars-simulator

#мипс #mars-simulator #mips

Вопрос:

Я кодирую в MIPS и пытаюсь заменить каждый соответствующий символ в строке другим символом, предоставленным пользователем. Моя проблема заключается в фактической замене. Я пытаюсь использовать sb для перемещения символа замены в нужное место, но, похоже, это не работает.

 while:
        lb $t2, 0($t5)      #Loads the next byte of the string into 
                                 temporary storage

        beqz $t2, exit      #If the next byte is empty, we're done

        beq $t2, $t1, replacer  #If the next character matches, replace the 
                                 character
        replacerContinue:

        addi $t0, $t0, 1    #Increments the address for the modded array
        addi $t5, $t5, 1    #Increments original string
        j while

.
.
.
.


replacer:
        sb $t4, 0($t0)  <----   #Stores the replacement character at the bit 
                                 in the current offset for the modified string
        j replacerContinue
        syscall
  

Вот немного ключа для регистров, я знаю, что это немного беспорядочно:

$ t0 = Измененная версия исходной строки, которая должна содержать новый символ взамен старого символа

$ t1 = Символ, который пользователь хочет заменить в строке

$ t2 = байт в строке для $ t5

$ t4 = Символ, который пользователь выбрал для замены старого символа

$ t5 = исходная строка. Это было введено ранее пользователем, и я сохранил его в .компонент данных

Я ожидал, что когда я использую sb $ t4, 0 ($ t0), он сохранит символ замены в соответствующем месте старого символа (обратите внимание, что я увеличиваю адреса в конце цикла, поэтому мне не нужно добавлять смещение).

Вместо этого я не могу сказать, происходит ли что-нибудь. Я использую MARS, и когда я смотрю на значение регистра, чтобы увидеть, происходит ли замена в $ t0, он показывает только значение адреса.

Спасибо за вашу помощь. Дайте мне знать, если я могу предоставить какую-либо дополнительную информацию, или если вы заметили какие-либо плохие практики в написании моего кода. Я все еще новичок в MIPS.

Комментарии:

1. Вам нужно посмотреть в окне просмотра сегментов данных на адрес, который $t0 содержится в данный момент. Вы даже можете настроить его для отображения данных в виде символов ASCII.

2. Спасибо! Я попробую.