【发布时间】:2016-03-29 23:09:57
【问题描述】:
.text:91C034B4 li r11, 0x1E # Load Immediate
.text:91C034B8 divw r11, r27, r11 # Divide Word
.text:91C034BC mulli r11, r11, 0x1E # Multiply Low Immediate
.text:91C034C0 subf. r11, r11, r27 # Subtract from
.text:91C034C4 bne loc_91C034E0
通常在 PowerPC 中,在bne(如果不相等则分支)指令之前有一条比较指令。有人可以解释一下这是如何比较的或者上面的说明中发生了什么吗?
【问题讨论】:
-
subf设置标志。事实上,很多架构上的比较只是做减法,结果被丢弃。 -
@Jester 在这种情况下 BNE 指令检查不相等是什么?这可以使用 % 运算符吗?
-
它正在检查
r11 == 0是否确实看起来像除以30(0x1E) 的余数。 -
@Jester 不会是 r11 != 0 吗?
-
我没说什么时候分行。它正在检查
r11==0和分支是否不是:)
标签: assembly instructions powerpc