将点附加到指令时如何比较值

时间:2014-12-18 10:53:43

标签: assembly powerpc

我对装配和PowerPC装配比较陌生,所以请耐心等待这个问题。我已经环顾四周但是没有真正找到一个准确的答案,就是在向指令附加一个点时如何比较确切的值,例如:

clrlwi. r0, r0, 29   # clear left word immediate

这是将r0的原始值与清除位后计算的值进行比较,还是等同于编程语言中的if (variable)?在this page上,它所说的是附加一个点相当于

cmpwi rD, 0

但是我不清楚这与寄存器的比较究竟是什么,因为它们的语法并不能准确显示一个值是一个寄存器号还是一个立即整数......

1 个答案:

答案 0 :(得分:2)

点表示CR0标志(CR的位0..3)将根据指令的结果进行更新。

  

cr0用于定点计算指令的结果,它使用非立即数操作数(除少数例外)。将计算结果与零进行比较,并设置适当的位(负,零或正)   要在计算指令中指明您希望它设置cr0,您只需在句子末尾添加句点(.)。例如{{1}将寄存器5添加到寄存器6并将结果存储在寄存器4中,而不在add 4, 5, 6中设置任何状态位。但是,cr0执行相同的操作,但会根据计算的值设置add. 4, 5, 6中的位。

cr0位:

CR0

(source)