1

有人可以向我解释/确认这一点(特别是 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;
}

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

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

4

1 回答 1

3

您对代码功能的假设对我来说是正确的。

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

第四个参数不是imm12,而是一个移位操作width我假设它是一个通用寄存器的别名)。

于 2013-05-02T15:30:42.730 回答