繁体   English   中英

x86 MASM程序集 - 保存字符串的空变量

[英]x86 MASM Assembly - Empty Variable that Holds a String

下面是我声明为保存字符串的变量。

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

有没有一种简单的方法来解决这个问题,比如清除字符串变量的所有内容?

编辑:这已经解决了。 谢谢您的帮助!

如果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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM