小编car*_*m3l的帖子

为什么 SHL 要在 8086 中“移动”2 个字节?

我们正在使用有限的 8086 条指令学习汇编。

当我们在内存中有一个数组时,我们使用 SHL 在元素之间移动(取决于元素大小)。

例如,假设有一个 2 个字节的短裤数组。该数组位于 ES 段上,第一个元素从 BX 偏移量 (ES:[BX]) 开始。

如果我们想转到下一个元素,我们使用 SHL BX,1 ,然后使用 ES:[BX] 访问它。

ADD AX, ES:[BX]
SHL BX,1
ADD AX, ES:[BX]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样,偏移量乘以 2。我们不应该将 2 添加到 BX 以转到下一个元素吗?

ADD AX, ES:[BX]
ADD BX,2
ADD AX, ES:[BX]
Run Code Online (Sandbox Code Playgroud)

assembly x86-16

2
推荐指数
1
解决办法
254
查看次数

标签 统计

assembly ×1

x86-16 ×1