2016-10-16 7 views
0

MIPS 어셈블리의 문자열에서 두 문자를 대체하는 방법을 알고 싶었습니다. 예 :MIPS에서 문자열 대체

.data 
str:   "MIPS is love" 
replacement: "\n" 
stringtoreplace: " " 

어디서부터 시작해야할지 모르겠다.

+0

논리가 무엇인지 생각한 다음 asm에 쓰는 것부터 시작하십시오. –

+0

MIPS에서 문자열을 반복하는 방법은 무엇입니까? –

+0

미리 결정된 조건이 충족 될 때까지 레지스터를 증가시키는 루프를 작성합니다. – Michael

답변

1

str이 $ s0에 있다고 가정합니다. $ s1은 C에서의 i와 같은 반복자가되게합니다. $ s1은 $ s0에 저장된 기본 주소의 오프셋이됩니다. 따라서 찾기 및 바꾸기 위해 $ s1을 증가시켜 문자열을 반복합니다. 대체 할 문자열을 $ s2에, 대체 문자열을 $ s3에 놓습니다.

add $s1,$s1,$zero #initializing $s1 to 0 
loop: 
    add $t0,$s0,$s1 
    lb $t1,0($t0) 
    bne $t1,$s2,skip_replace 
    sb $s3,0($t0) 
    skip_replace: 
    addi $s1,$s1,1 
    bne $t1,$zero,loop