【发布时间】:2015-02-24 18:49:43
【问题描述】:
非常简单的问题,但我没有找到好的答案,所以我在这里问。
我看到有时我们使用 ADD 指令进行加法,有时我看到使用加号 (+)。
请看以下内容:
mov eax,[esi + TYPE DWORD]
嗯,我知道要添加数字,我应该使用 ADD 指令,但它似乎像这样工作。
我认为应该这样做:
add esi, TYPE DWORD
mov eax,[esi]
sub esi, TYPE DWORD
我的意思是,计算机如何在不执行添加指令的情况下访问内存地址esi + TYPE DWORD?好奇怪...
非常感谢您的阅读(:
【问题讨论】:
-
CISC?
-
不要陷入思考1助记符=1指令=1循环的陷阱。
-
@OllieFord 它是一条指令,如果它是
lea它将是一个单周期指令 -
@OllieFord 那么第二个代码(带有 ADD 和 SUB)是处理器真正执行的代码吗?
-
没有。它会将
esi的值和4(dword 类型为4)通过加法器。它不需要指令,只是一个加法器。就像它不执行add eip, instruction_length一样。不可能一直是乌龟,在某些时候它只是硅电路。