gpt4 book ai didi

assembly - lea 0x0(%esi),%esi 是什么意思

转载 作者:行者123 更新时间:2023-12-03 22:18:09 26 4
gpt4 key购买 nike

lea    0x0(%esi),%esi

我相信它没有结果,只是填充空间。是这种情况吗?

最佳答案

它是一个 NOP。它将 %esi 和 0x0 的内容相加,并将结果放在 %esi 中。有人要么有一个笨拙的代码生成器,要么需要填充 N 个字节,而这条指令的大小正好合适。

LEA 指令执行得非常快(通常为 1 个时钟),因此这比 N nops 好得多。

x86 和它一样古怪,有各种各样的指令,除了填充不同数量的字节外,它们实际上什么都不做。您可能会发现其他不同长度的无用指令。您往往会发现很长但在 1 个时钟或更短时间内执行的指令。

AMD x86-64 手册对 NOP 应该使用什么有一些建议;他们建议在实际 NOP IIRC 之前重复多次的前缀操作码之一。这种前缀操作码被指令提取引擎消耗得非常快;大多数情况下,它们的成本隐藏在指令预取中,而不是指令执行时间中。

关于assembly - lea 0x0(%esi),%esi 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com