MOV CX、DAT[4] 索引到字数组 (DW) 的结果

Result of MOV CX, DAT[4] indexing into array of words (DW)

我有以下命令

DAT DW 128,256,64,32
MOV CX, DAT[4]

据我所知,DAT[4] 意味着我们将获得第 4 个索引的值,但在这种情况下我们没有这样的索引。
你能告诉我在 MOV CX, DAT[4] 之后 CX 寄存器中会有什么吗?

As I know, DAT[4] means we will get value of 4th index,

在汇编语言中,我们不像高级语言那样使用基于整个元素的数组索引。在高级语言中,DAT[4] 将检索第五个数组元素(如果索引从 0 开始)。

在汇编语言中,方括号之间的数字是距数组开头的偏移量,以字节为单位。 你的例子:

DAT DW 128,256,64,32

使用十六进制重写:

DAT DW 0080h, 0100h, 0040h, 0020h

在内存中呈现为(x86 是小端):

80h, 00h, 00h, 01h, 40h, 00h, 20h, 00h
^                   ^
offset 0            offset 4

偏移量 4 处的字包含低字节 40h 和高字节 00h。
因此 MOV CX, DAT[4] 将加载 CX 0040h,十进制为 64。