2013-07-24 4 views
0

버퍼 및 메모리 할당을 사용하여 입력 문자열의 길이를 확인하려고합니다. 그래서 내가 메모리를 할당하고 문자열을 읽고 그것을 버퍼에 저장한다고 가정 해 보겠습니다. 그러면 문자열의 길이를 어떻게 알 수 있습니까?MIPS32에서 문자열 길이를 확인하십시오.

+0

어떤 언어 : 같은

뭔가? ASM/C/C++? – Geoffrey

+0

사과드립니다. 이미 MIPS32가 될 것이라고 언급했습니다. –

+0

MIPS32 = 언어가 아닌 CPU 아키텍처가 MIPS32 어셈블러를 의미합니다. – Geoffrey

답변

1

널 문자 (0)를 찾을 때까지 처음부터 세어보십시오.

la $t0 string 

loop: 
    lb $t1 0($t0) 
    beq $t1 $zero end 

    addi $t0 $t0 1 
    j loop 

end: 

la $t1 string 
sub $t3 $t0 $t1 #$t3 now contains the length of the string 
+0

빼기 전까지 의미가 있습니다. t0에 이미 문자열의 길이가 있습니까? null 문자를 찾으면 $ t0는 증가하지 않습니다. 그래서 $ t0에는 문자열의 길이가 포함되어 있습니까? 그러면 왜 t1에서 $ t0를 뺄 필요가 있습니까? –

+0

@SlyCooper 사실 나는 그것을 거꾸로 가지고 있습니다. sub $ t3 $ t0 $ t1이라고 말하기 위해 편집하겠습니다. 그러나 빼기는 주소 여야하며 오프셋이 아니기 때문에 여전히 필요합니다. –

관련 문제