有这些数据
.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]
但我不能用
mov eax,tableD[ebx*2 + esi*TYPE tableD]
但我可以用
mov eax,tableD[ebx*2 + esi]
我不能在那里使用2*s?
我可以知道这些物品的条款吗?
x86架构支持以下形式的四部分寻址模式:
base + index * scale + displacement
其中所有四个部分可以不存在(scale是1如果不存在).这意味着内存操作数中只能有一个缩放组件; 所以是的,你只能使用一个*.
此外,缩放因子限于1,2,4或8; 其他缩放因子无法编码.
| 归档时间: | 
 | 
| 查看次数: | 83 次 | 
| 最近记录: |