我什么时候可以在汇编语言中使用*?

时间:2017-06-14 18:57:55

标签: assembly x86

使用此数据

B

我可以用

fullscreen

但我无法使用

.data
tableD DWORD 10h, 20h, 30h, 40h, 50h, 60h
Rowsize = ($ - tableD)
DWORD 60h,70h,80h,90h,0A0h
DWORD 0B0h,0C0h,0D0h,0E0h,0F0h

但我可以使用

.code
mov eax,tableD[ebx + esi*TYPE tableD]

我不能在那里使用2 * s吗?

我可以知道这些物品的条款吗?

1 个答案:

答案 0 :(得分:6)

x86架构支持以下形式的四部分寻址模式:

base + index * scale + displacement

其中可以不存在所有四个部分(scale如果不存在则1)。这意味着内存操作数中只能有一个缩放组件;是的,你只能使用一个*

此外,缩放因子限制为1,2,4或8;其他缩放因子无法编码。