我有以下命令
DAT DW 128,256,64,32
MOV CX, DAT[4]
据我所知,DAT [4] 意味着我们将获得第 4 个索引的值,但在这种情况下,我们没有这样的索引。
您能告诉我在MOV CX, DAT[4]
之后的CX
寄存器中有什么吗?
据我所知,DAT [4] 意味着我们将获得第 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]
将使用十进制为 64 的 0040h 加载CX
。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(1条)