汇编:添加指令和运算符添加之间的区别

pku*_*mar 5 assembly

以下两者有什么区别吗:

mov     eax, [eax+4]
Run Code Online (Sandbox Code Playgroud)

add     eax, 4
mov     eax, [eax]
Run Code Online (Sandbox Code Playgroud)

如果不是,那么汇编程序是否会选择选择哪一个进行某种优化?

Jes*_*ter 2

是的,存在差异。你是否关心他们是另一回事。影响add标志, 则不[eax+4]影响。这两个版本具有不同的指令和字节数,并且它们可能使用不同的执行单元。这些在优化时可能很重要。

通常,汇编器不会更改您的代码,无论您编写什么,您都会得到什么。