2016-04-07 3 views
0

Итак, как задает вопрос, мне интересно, как я могу заменить определенный символ в MIPS?Как заменить определенный символ в MIPS?

хранить характер, я хочу, чтобы заменить в $ s0, используя

addi $s0, $v0, 0 

хранить символ Я хочу, чтобы заменить его в $ s1, используя

addi $s1, $v0, 0 

Теперь, мой цикл так, такие как:

la $t0, userInput 

replaceLoop: 
lbu $t2, 0($t0) #load our input's first char is at 
addi $t0, $t0, 1 #increment address of our string. 
beq $t2, $s0, replace #check if char in input, matches 
beq $t2, $0, end  #char we want to replace. 

Итак, что нужно сделать, это сначала спросить: «Является ли персонаж, который я сейчас указываю на в userInput, соответствующем символу, который я хочу заменить? " Если да, замените команду. Вопрос в том, как мне написать замену? Я только начинаю изучать MIPS, поэтому любая помощь будет оценена.

Редактировать: Выяснил проблему; отредактировано до тех пор, пока не включится.

+0

'sb $ s1, -1 ($ t0); b replaceLoop; ' – EOF

+0

Не могли бы вы объяснить, что он делает и как это делается? – SomeStudent

+1

'sb' is ** s ** tore ** b ** yte, от источника (в данном случае' $ s1') к указанному адресу. Адрес меньше, чем '$ t0', так как вы уже увеличили адрес до условной ветви. Затем вернитесь к началу цикла. – EOF

ответ

0

Подсказка как ответ лежит в replaceLoop и имеет отношение к отсутствующему bne, который возвращается к нашему циклу.

Смежные вопросы