gpt4 book ai didi

c - 立即寻址比寄存器访问更快吗?

转载 作者:行者123 更新时间:2023-11-30 21:49:10 25 4
gpt4 key购买 nike

比如,假设您有一个变量 c,由于 CPU 的优化,您可以安全地假设它存储在寄存器中。以下哪一个更快?

c = getchar();
if( c == 033 ){
putchar( 033 );

}

c = getchar();
if( c == 033 ){
putchar( c );

}

我猜第一个会更快,因为它使用立即寻址而不是寄存器访问。我的假设正确吗?

最佳答案

它在很大程度上取决于指令集和立即数与寄存器,寄存器可能会稍微慢一两个时钟,因为您需要立即数或加载才能将其放入寄存器。立即数位于指令中,除非指令集是可变长度,这也可能会花费您的指令周期。

无论如何,putchar 都会淹没这个,数百到数千个时钟周期,而不是您试图在此处保存的一两个时钟周期。

某些指令集对立即数有限制。因此,这非常依赖于指令集,然后依赖于应用程序。

关于c - 立即寻址比寄存器访问更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42075009/

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