MOV CX的结果,DAT [4]索引到单词数组(DW)中

问题描述 投票:0回答:1

我有以下命令

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

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

assembly x86-16 tasm
1个回答
1
投票

据我所知,DAT [4]表示我们将获得第四个索引的值,

在汇编语言中,我们不像高级语言那样基于整个元素使用数组索引。在高级语言中,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]将使用0040h(十进制为64)加载CX

© www.soinside.com 2019 - 2024. All rights reserved.