Assembly 读取字符串而不定义长度

Assembly 读取字符串而不定义长度,assembly,x86,masm,32-bit,irvine32,Assembly,X86,Masm,32 Bit,Irvine32,是否可以使用(调用ReadString)读取字符串,而不定义要读取的字符串的长度?在调用ReadString之前,我必须说明字符串的长度: mov edx, offset StringOffset mov ecx, maxLenght call ReadString mov countOfChars, eax 有没有办法在不定义最大长度的情况下读取字符串?我从来没有调用过ReadString,但您可以使用字符串末尾的\0来获取maxLe

是否可以使用(调用ReadString)读取字符串,而不定义要读取的字符串的长度?在调用ReadString之前,我必须说明字符串的长度:

mov edx, offset StringOffset
mov ecx, maxLenght
call ReadString                             
mov countOfChars, eax

有没有办法在不定义最大长度的情况下读取字符串?

我从来没有调用过ReadString,但您可以使用字符串末尾的
\0
来获取
maxLength
或手动读取它

    xor     eax, eax
    cmp     edi, 0
    jz      end
deb:
    cmp     BYTE[edi+eax], 0
    jz      end
    inc     eax
    jmp     deb
end:
    ...
“是否可以使用(调用ReadString)读取字符串而不定义要读取的字符串长度?”听起来很危险。如果读取的数据超过缓冲区所能容纳的数据量,该怎么办?