为什么将值 2 添加到 si 只会使索引增加 1?

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

我是 x86 架构和汇编的初学者,这是一个代码片段,下面包含步骤。

我知道 si 是源索引,它充当数组的索引。

突出显示的行表示正在向其中添加 2,但答案表明我们仅向上移动索引 1。

我确信我的解释是错误的,如果有人可以解释正在发生的事情,那将会有很大帮助!

汇编新手友好的词汇首选!

assembly x86
1个回答
3
投票

发生这种情况是因为 array 中的数据被视为与 si 中的索引不同的类型。由于 array 被声明为包含 dws(数据字,16 位),并且 si 以字节为基础(8 位)索引内存,因此 si 必须为您希望遍历的每个字索引采取两个“步骤”。否则,您最终会在数组中每个单词的高位字节和低位字节之间交替。

希望这有帮助!

编辑 - 更正数据大小。

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