PowerPC指令cmplw意味着什么

时间:2014-07-29 02:47:41

标签: xbox powerpc

PowerPC指令cmplw是什么意思,我在这里如何反转它就是这条线。

cmplw     cr6, r31, r10   -----------        r31 = 80 and r10 = 0

请快速告诉我如何扭转这条指令:)

1 个答案:

答案 0 :(得分:2)

比较寄存器r31和r10的内容以确定它们是否大于,小于,等于或是否存在汇总溢出条件,并将结果放入条件寄存器(CR)字段6中。 CR字段位根据PowerPC用户ISA书1中的3.3.9定点比较指令设置。本例中的CR字段为6,并且这些字段编号为字段0为0-3位,字段1为4 -7,依此类推。所以CR字段6是条件寄存器的24-27位,你可以在那里找到大于,小于等的结果。

CR字段最常用于分支指令(如bne,beq,blt等)以作出流决策。如果没有基于CR字段做出决定的下一个相关指令,则很难用C编写代码来说明该指令的作用。我会说C代码的最佳估计是“r31 == r10”,“r31> = r10”,“r31< r10”等等,我无法确定比较运算符。我也无法确定它是“if”,“switch”,还是基于当前信息进行的条件操作。这一切都取决于使用CR字段6的内容的下一个相关指令。如果下一个相关指令是CR6上的beq,那么我希望C代码可以是条件,如“if(r31 == r10)”。有很多种可能性。