gpt4 book ai didi

assembly - x86-32 汇编中的 "lea eax, [ebx + eax]"和 "add eax, ebx"有什么区别?

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

GCC 给我做了一些汇编代码,里面有这个语句:

lea eax, [ebx+eax]

(英特尔语法)
只是好奇,这有什么区别,和:
add eax, ebx

是?

eax 和 ebx 包含函数的返回值:)
mov eax, DWORD PTR [ebp+8]
mov DWORD PTR [esp], eax
call CALC1
mov ebx, eax.
mov eax, DWORD PTR [ebp+8]
mov DWORD PTR [esp], eax
call CALC2
lea eax, [ebx+eax]

最佳答案

立即想到的一个区别是 lea不影响标志,而 add做。

如果没有看到汇编代码的其余部分,就不可能说这是否有任何相关性。它可能只是 GCC 代码生成器的人工制品(即它实际上可以为更一般的情况生成代码,或者只是使用 lea 作为更灵活的 add 。)

关于assembly - x86-32 汇编中的 "lea eax, [ebx + eax]"和 "add eax, ebx"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316526/

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