工具/软件:Code Composer Studio
您好,
我浏览了TI的CRC指南- 第3页 ,我发现其中有一条陈述
"处理器在字节和文字上的操作比比特更好"
有人能澄清这里的"更好"是什么意思吗? 是否按照说明执行的机器循环次数? 如果我没记错,那么最后一次,我检查了每个指令的机器周期,字节指令(如DIV和MUL)为古老的英特尔CPU花费了4个机器周期,这比任何其他指令都要多。 当我说与字节操作相比,左移或右移等位操作效率低下时,我是否错了?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好,
我浏览了TI的CRC指南- 第3页 ,我发现其中有一条陈述
"处理器在字节和文字上的操作比比特更好"
有人能澄清这里的"更好"是什么意思吗? 是否按照说明执行的机器循环次数? 如果我没记错,那么最后一次,我检查了每个指令的机器周期,字节指令(如DIV和MUL)为古老的英特尔CPU花费了4个机器周期,这比任何其他指令都要多。 当我说与字节操作相比,左移或右移等位操作效率低下时,我是否错了?
如果要更改某个位,您要么必须为每个位使用单独的单字节变量,要么必须屏蔽该位,以便变量中的其他位不受影响。
MSP430具有用于设置/清除位的BIS/BIC指令,但这仍需要两个指令:
//一个字节 a = new_value; //一位 a &=~bit_mask; a |= new_bit;
如果您不知道位号,则必须添加更多的shitfting指令。
MSP430没有料筒换档器;更多的换档步骤需要更多的循环。
我很抱歉,但我的关注仍然是一样的。 请允许我举一个例子来解释我的疑虑。
假设int x =2;在另一个变量int result=0中,我应该得到变量x的两倍 现在,在(案例1)中,我使用算术运算符,我写了如下内容:
结果= x * 2;
而在(案例2)中,我使用轮班操作员并写一些类似的内容:
结果= x<1;
您能否详细说明哪种情况可能会更快地执行?为什么?
CRC pdf文档中的陈述适用于大多数CPU还是仅适用于MSP430?