一段时间以来,我一直在定义字符串,DB 20, 22
但不知道为什么:
我读到第一个字节是缓冲区大小,第二个字节保存字符串的使用字节数,但我不知道这两个值是否都是强制性的。例如,当我定义一个字符串并想要将一个寄存器指向它时,我必须使用 +2 来跳过这两个字符。
string DB 20, 22 dup('?')
lea si, string+2
lea si, [string] ; I think this is another alternative
这让我想知道我是否可以在没有它们的情况下定义字符串lea si, string
。这是可能的还是两个项目都是强制性的?另外,当我想跳过一行并将光标移到开头时DB 13, 10
,编译器如何知道 13 不是缓冲区大小而 10 不是字符数?我可能在胡说八道,但对这些问题的任何澄清将不胜感激