버퍼 및 메모리 할당을 사용하여 입력 문자열의 길이를 확인하려고합니다. 그래서 내가 메모리를 할당하고 문자열을 읽고 그것을 버퍼에 저장한다고 가정 해 보겠습니다. 그러면 문자열의 길이를 어떻게 알 수 있습니까?MIPS32에서 문자열 길이를 확인하십시오.
0
A
답변
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이라고 말하기 위해 편집하겠습니다. 그러나 빼기는 주소 여야하며 오프셋이 아니기 때문에 여전히 필요합니다. –
어떤 언어 : 같은
뭔가? ASM/C/C++? – Geoffrey
사과드립니다. 이미 MIPS32가 될 것이라고 언급했습니다. –
MIPS32 = 언어가 아닌 CPU 아키텍처가 MIPS32 어셈블러를 의미합니다. – Geoffrey