我有一段代码,我不明白为什么在使用malloc创建数组时为什么使用shl指令

时间:2019-04-14 14:11:54

标签: x86 malloc

我试图理解这段代码,该代码在将内存动态分配给x86(MASM组件)中的一维数组时使用shell指令(SHL)。我想知道该人使用shl指令的原因。

code fragment

1 个答案:

答案 0 :(得分:1)

左移一次等于将其乘以2;将某物左移N次与将其乘以2 ** N相同;但是移位通常比实际乘法快。

对于您显示的代码;将n乘以sizeof(int)。由于sizeof(int)恰好是4,这意味着它可以向左移动两次(shl eax,2)而不是进行(更昂贵的)乘法。