2

与 JMP、CALL、MOV、PUSH(我的意思是更多可用命令)等其他汇编语句相比,说 CMP 需要更多时间来运行是否正确?

4

1 回答 1

-1

不,到目前为止 MOV 可能需要最长的时间才能运行,因为一般来说它必须命中内存才能执行移动(比寄存器访问慢得多),并且可能会阻塞。另一方面,CMP 在实践中通常将文字和寄存器作为参数,并且只命中 ALU。

CALL 实际上会执行 PUSH 和 JUMP,因此是第二长的。哦,是的,如前所述,JMP 可以刷新管道(尽管无条件跳转不会)。

底线 CMP 速度很快,就像 INC、ADD 或任何其他简单的数学计算一样,通常都经过优化以使用寄存器值和文字,并且除了命中 ALU 之外什么都不做。

于 2012-06-20T03:28:59.003 回答