每一个字符串都可以看作是一个字节数组。
aString db "abcdef", 13, 10, "$"
byteArray db "a", "b", "c", "d", "e", "f", 13, 10, "$"
你可以用同样的方式输出两者:
mov dx, offset aString
mov ah, 09h ; DOS.PrintString
int 21h
mov dx, offset byteArray
mov ah, 09h ; DOS.PrintString
int 21h
之所以有效,是因为数组中的元素在内存中彼此紧挨着,因此 aString 的存储空间和 byteArray 的存储空间没有真正的区别。
有助于区分的是,当人们谈论数组时,他们最感兴趣的是存储在数组元素中的数值,而不是当他们谈论字符串时,他们并不关心实际的 ASCII 码。组成字符串的字符。
在aString db "abcdef", 13, 10, "$" 中,我们看到字符a、b、...
在byteArray db "a", "b", "c", "d", "e", "f", 13, 10, "$" 中,我们宁愿看到数字97、98、...(通常我们也会以数字开头!)
但并非每个 数组 都是字符串,因为您可以拥有包含单词大小元素或双字大小元素的数组。
byteArray db 1, 2, 3 <== 3 bytes storage
wordArray dw 1, 2, 3 <== 6 bytes storage
dwordArray dd 1, 2, 3 <== 12 bytes storage