如果你只想要一个字符串,那么只需定义它:
myString db 'hello, world'
然后你可以按照你所展示的那样解决它:
lea si, myString
但是,您要么需要知道字符串有多长,要么必须添加终止符,以便输出函数知道在哪里停止。如果您想要以 0 结尾的字符串,例如:
myString db 'hello, world', 0 ; don't forget that terminator
或者,您可以将长度放在字符串之前,这可能是您的长度20, 22
was:
myString db 12, 'hello, world'
1 个字节适用于最多 255 个字符的字符串。如果您需要处理比这更长的字符串,您可能需要标准化两个字节作为字符串长度。
无论您选择哪一个,您的输出函数都需要知道如何处理它。
顺便说一句,如果您想要长度前缀的字符串,则不应手动编码长度。让汇编器为您解决这个问题:
myString db myStringEnd - $
db 'hello, world'
myStringEnd equ $