零速度最快的方式

时间:2012-05-06 19:43:49

标签: c zero 8051 unsigned-integer

将unsigned int归零的最快方法是什么?

我目前只是将值设置为0,但我不知道是否有任何将变量置零的技巧?在我当前的项目中,我需要几个时钟周期。我使用的是标准的8051处理器,如果有帮助的话,我需要两个不同的变量才能达到零。

5 个答案:

答案 0 :(得分:5)

问题标记为8051,因此如果需要将寄存器归零,则将寄存器与其自身进行异或将更快地将其归零,而不是在其中移动零。一个操作码提取和解码与操作码提取解码和操作数提取。

如果您使用的是更高级别的语言而不是手动汇编或使用asm编写,那么最好使用var = 0。编译器将负责所需的优化。

答案 1 :(得分:3)

为人类编写代码,不要浪费任何优化不需要优化的事情。如果要为变量赋值为零,则将零赋值给变量:x = 0;

快速制作正确的节目比制作快速节目更快更容易。

答案 2 :(得分:2)

我相信编译器会为你优化这类事情。请记住,微观优化会导致微观结果。

答案 3 :(得分:1)

微观优化导致微观结果。

您可以通过自身xor变量来实现零。很可能你的编译器已经这样做了,如果没有更快的话。

答案 4 :(得分:0)

首先尝试实现一种对包含相关代码的代码块进行计时的方法,如果你还没有这样做的话。

然后,尝试var = 0;并使用在列表中生成汇编程序的编译器开关。然后为XOR解决方案做同样的事情。它代表了一些额外的工作,但那时你会得到结果。

相关问题