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

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

我正在尝试理解在x86(MASM程序集)中动态分配内存到1D数组时使用shell指令(SHL)的这段代码。我想知道这个人使用shl指令背后的原因。

code fragment

x86 malloc
1个回答
1
投票

将一次性移动一次与将其乘以2相同;左移N次与将其乘以2 ** N相同;但是移位通常比实际乘法更快。

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

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