下面是我声明为保存字符串的变量的内容。
tempStr BYTE 30 DUP(?)
我会存储一串数字,它会正常输出。但是如果我用更短的字符串再次存储它,它将包含我第一次存储它时包含的部分内容。一个例子如下:
tempStr 的输入 1:57894
输出 1:57894
tempStr 的输入 2:137
输出 2:13794
mov edx, OFFSET tempStr
mov ecx, (SIZEOF tempStr) - 1
call ReadString
etc
有没有一种简单的方法来解决这个问题,比如清除字符串变量的所有内容?
编辑:这已解决。谢谢您的帮助!
最佳答案
如果 ReadString 没有以零终止字符串,则必须先用零清除它,例如
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
关于assembly - x86 MASM 程序集 - 包含字符串的空变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29003106/