gpt4 book ai didi

variables - 汇编语言中哪个方法执行速度更快 : adding by variables or adding by immediate value? 为什么?

转载 作者:行者123 更新时间:2023-12-02 19:22:00 30 4
gpt4 key购买 nike

例如:

; Method 1
.data
val1 DWORD 10000h
.code
add eax,val1

对比:

; Method 2
.code
add eax,10000h

哪种方法在编译(汇编)后执行速度更快?我认为方法 2 会产生更快的代码,因为 CPU 在与 eax 寄存器相加之前不必从主内存读取值。我的回答不太清楚,有人可以帮忙吗?

最佳答案

无论如何,10000h 都将从存储器中读取 - 无论是从数据存储器中的位置,还是从指令存储器中的位置。对于较小的常数值,CPU 提供特殊指令,不需要额外的空间来添加值,但这取决于特定的体系结构。由于缓存,立即加法可能会更快:当指令被解码时,常量将在缓存中,并且加法将非常快。

小题外话:您的示例展示了优化 C 编译器生成比手写汇编更快的代码的情况:优化器可能不会添加 10000h,而是将上半字增加 1,并保留下半字按原样。

关于variables - 汇编语言中哪个方法执行速度更快 : adding by variables or adding by immediate value? 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767000/

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