为什么这个数组指针要移动 1?

Why is this array pointer shifted by 1?

我正在为微处理器考试而学习,出现了这个示例问题:

综上所述,代码后面的程序内存中有一个数组:

array: .db 11,12,13,14,15,16,17,18,19,20

并且在代码中指针加载为:

ldi ZL, low(array<<1);

我的问题是为什么我得到的代码中存在 1 的移位。在我看来,标签 "array" 应该指向包含数字 11 的内存字节。如果我理解正确的话,向左移动 1 将乘以 2。那不会把它扔掉吗?是给我的代码错了还是我没理解什么?

来自the description of LPM

The program memory is organized in 16 bit words while the Z pointer is a byte address.

这样就完成了从字地址到字节地址的转换。