ARM SUBtract指令的第四个参数

时间:2013-05-02 14:45:25

标签: assembly arm

有人可以向我解释/确认这一点(特别是SUB行):

CMP align,#2
CMPNE align,#5
CMPNE align,#8
SUBEQ xpos,xpos,width,LSR#1

我认为这可能与c代码等效:

if ((align==2) || (align==5) || (align==8))
{
  xpos -= width >> 1;
}

我找到了这个documentation,但我不明白第四个参数imm12。它只是说:

  

SUB指令从Rn中的值中减去Operand2或imm12的值。

1 个答案:

答案 0 :(得分:3)

您对代码的作用的假设对我来说是正确的。

  

但我不明白第四个参数,imm12

第四个参数不是imm12,而是width上的a shift operation(我假设它是其中一个通用寄存器的别名)。