gpt4 book ai didi

arrays - 汇编语言中String和Array的区别

转载 作者:行者123 更新时间:2023-12-04 22:01:07 25 4
gpt4 key购买 nike

我目前正在使用 MASM 在 DOSBox 上进行汇编编程(16 位)。

我知道的是:

这是你声明字符串的方式:

var db 'abcde'

这是声明数组的方式:

var db 'a','b','c'

I don't know for sure if these are correct, and I'm confused between these two, array and string

mov ah,9
int 21h

Does above code show output string and not output array?

最佳答案

每一个字符串都可以看作是一个字节数组

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, ...< br/>在 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

关于arrays - 汇编语言中String和Array的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com