繁体   English   中英

在TASM x86程序集中读取字符串

[英]Reading a string in TASM x86 assembly

我试图在TASM程序集中读取用户的字符串,我知道我需要一个缓冲区来保存输入,最大值。 长度和实际长度,但我似乎忘了我们如何声明一个缓冲区

我的尝试是这样的

Buffer db 80 ;max length
       db ?  ;actual length
       db 80 dup(0);i think here is my problem but can't remember the right format

提前致谢

DB(定义字节)指令用于分配字节大小的内存块。 DB之后的部分指定应放入已分配内存的值。 例如,如果要使用值65定义单个字节的内存,则可以使用以下指令。

SingleByte   DB  65        ; allocate a single byte and write 65 into the byte

DUP(复制)指令用于复制一系列字符。 要复制的一系列字符在DUP后面的括号中指定。 DUP之前的数字指定应该复制一系列字符的次数。 例如,如果要定义一个10字节的内存块,其中每个字节的值为65,则可以使用以下指令。

TenBytes     DB  10 DUP(65); allocate 10 bytes and write 65 into each byte

在您的情况下,您不关心缓冲区中每个字节中存储的值,因此您可以使用? 作为重复的字节。 如果你想将每个字节初始化为零,你可以替换? 0

Buffer       DB  80 DUP(?) ; set aside 80 bytes without assigning them any values

应使用单独的变量管理缓冲区的最大长度和实际长度。 总而言之,您可能想要具有以下特性的东西。

Buffer       DB  80 DUP(0) ; 80-byte buffer initialized to all zeros
BufferMaxLen DB  80        ; maximum length of Buffer
BufferLen    DB  0         ; actual length of Buffer

暂无
暂无

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

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