Добавьте немного пустого пространства между ними. ;)
str1: .asciiz "I'm string one"
some_space: .space 40
str2: .asciiz "I'm the second string"
other_space: .space 40
str3: .asciiz "I'm the last string"
guess_what: .space 40
Если вы не можете сделать это, объявите три буфера назначения (всегда с .space
выше), куда вы копируете свои строки, а затем отредактируйте их прямо там.
EDIT
Вы можете хранить эти подстроки в двух буферах, поэтому при изменении основной строки вы все равно будете перезаписывать подстроки, но вам не нужно беспокоиться, потому что вы получили их копию где-то еще. На практике, когда у вас есть собственная копия подстрок, вы можете с радостью забыть оригинальные и перезаписать их (при необходимости), используя для справки полученные копии.
Вероятно, это все, что вы можете сделать. Если у вас недостаточно места, невозможно придумать что-то другое. Вы должны что-то перезаписать. Кстати, после того, как вы изменили «основную» строку, вы можете поместить свои копии после этого, чтобы вызывающий все еще находил подстроки.