Assembly MOV CX,DAT[4]索引到字数组(DW)的结果
我有以下命令Assembly MOV CX,DAT[4]索引到字数组(DW)的结果,assembly,x86-16,tasm,Assembly,X86 16,Tasm,我有以下命令 DAT DW 128,256,64,32 MOV CX, DAT[4] 正如我所知,DAT[4]意味着我们将得到第四个索引的值,但在这种情况下,我们没有这样的索引。 您能告诉我在MOV-CX,DAT[4]之后,CX寄存器中会有什么吗 如我所知,DAT[4]意味着我们将得到第四个索引的值 在汇编语言中,我们不像在高级语言中那样使用基于整元素的数组索引。在高级语言中,DAT[4]将检索第五个数组元素(如果索引从0开始) 在汇编语言中,方括号之间的数字是从数组开始的偏移量,以字节为单位
DAT DW 128,256,64,32
MOV CX, DAT[4]
正如我所知,DAT[4]意味着我们将得到第四个索引的值,但在这种情况下,我们没有这样的索引。您能告诉我在
MOV-CX,DAT[4]
之后,CX
寄存器中会有什么吗
如我所知,DAT[4]意味着我们将得到第四个索引的值
在汇编语言中,我们不像在高级语言中那样使用基于整元素的数组索引。在高级语言中,DAT[4]
将检索第五个数组元素(如果索引从0开始)
在汇编语言中,方括号之间的数字是从数组开始的偏移量,以字节为单位。
你的例子是:
DAT DW 128,256,64,32
使用十六进制重写:
DAT DW 0080h, 0100h, 0040h, 0020h
在内存中显示自己,如(x86是小端数):
偏移量4处的字包含一个低字节40h和一个高字节00h。因此
MOV-CX,DAT[4]
将加载CX
,其中0040h为64位小数。索引通常使用字节,但这取决于汇编程序。如果问题是这样问的,我们可以假设字节数,这样加载的64
每个字为2字节。您可以将其放入一个程序中,并对其进行汇编,以查看得到的机器代码,甚至可以运行它并使用调试器查看寄存器值。你不需要问别人什么时候可以在真正的机器上试用它。你用的是什么汇编程序?我用的是Turbo Assemberx86是little endian。最后,我明白了。)@VaruzhanStepanyan一旦你彻底解释了这些基本问题,你就可以很好地理解汇编语言了。快乐学习。。。
80h, 00h, 00h, 01h, 40h, 00h, 20h, 00h
^ ^
offset 0 offset 4