是
if(!test)
比…快
if(test==-1)
我可以生产组装,但是生产了太多的组件,我无法找到我追求的细节.我希望有人知道答案.我猜它们是相同的,除非大多数cpu架构都有某种“比较为零”的捷径.
谢谢你的帮助.
解决方法
通常,是的.在典型的处理器中测试零或测试符号(负/正)是简单的条件代码检查.这意味着可以重新排序指令以省略测试指令.在伪装配中,请考虑以下因素:
Loop: LOADCC r1,test // load test into register 1,and set condition codes BCZS Loop // If zero was set,go to Loop
现在考虑对1进行测试:
Loop: LOAD r1,test // load test into register 1 SUBT r1,1 // Subtract Test instruction,with destination suppressed BCNE Loop // If not equal to 1,go to Loop
现在通常的预优化免责声明:你的程序太慢了吗?不要优化,分析它.