下面是我声明为保存字符串的变量。
tempStr BYTE 30 DUP(?)
我会存储一串数字,它会正常输出。但是如果我用较短的字符串再次存储它,它将包括我第一次存储它时所包含的部分内容。一个例子如下:
输入1为tempStr:57894
输出1:57894
输入2为tempStr:137
输出2:13794
mov edx, OFFSET tempStr
mov ecx, (SIZEOF tempStr) - 1
call ReadString
etc
是否有一种简单的方法可以解决此问题,例如清除字符串变量的所有内容?
编辑:这已经解决了。谢谢你的帮助!
答案 0 :(得分:3)
如果ReadString没有ZERO终止字符串,你必须先用零清除它,例如
cld ; clear direction flag for REP = count up
lea edi, tempStr
mov ecx, (SIZEOF tempStr)
mov al, 0
rep stosb ; repeats a put-byte of AL ECX times starting from address EDI