gpt4 book ai didi

assembly - LEA 指令的替代语法

转载 作者:行者123 更新时间:2023-12-05 00:33:30 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
What's the purpose of the LEA instruction?



当我需要某个地址的值时,我可以使用有效地址,例如 push dword [str+4] .但是当我需要引用一个地址时——我不能使用 push dword str+4 (对我来说,这是一种显而易见且直观的方法)。

而是需要使用 lea EAX, [str+4]然后 push EAX .这有点令人困惑,并且还提供了额外的处理器指令,尽管是“零时钟”指令。 (见 this answer)

这种差异是否有一些硬件级别的解释,或者它只是(NASM)汇编语法的一个怪癖?

编辑:
好的 this comment问和我一样的问题。并在 this comment 中得到答复就像 Lucero 的回答一样 - X86 不支持这种寻址。

最佳答案

只要使用正确的语法,你就需要 偏移关键词:

 push offset str+4

LEA 指令可以方便地使用地址生成逻辑的管道。提供不使用 ALU 的非常便宜的加法和乘法方法。在编写代码生成器的程序员的技巧列表中名列前茅。这里不需要,afaic。

关于assembly - LEA 指令的替代语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018573/

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