关于 SUBWF f [,d] 指令疑问

2019-07-16 07:03发布

最近在看十速芯片资料,碰到“SUBWF  f [,d] ”这样的指令,资料中给出的例子有点迷惑
请高手释疑!
资料上这样描述的:
  指令描述:寄存器‘f’ 的值减去W寄存器中的值(2的补码运算),运算结果存于目标寄存器。
  举例:
              SUBWF  REG1 , 1     执行前:REG1=3,W=2,C=?,    Z=?
                                             执行后:REG1=1,W=2,C=1, Z=0
              SUBWF  REG1 , 1     执行前:REG1=2,W=2,C=?, Z=?
                                             执行后:REG1=0,W=2,C=1, Z=1
             SUBWF  REG1 , 1     执行前:REG1=1, W=2, C=?,Z=?
                                             执行后:REG1=FFh,W=2,C=0,Z=0

我是这么理解的:如果REG1>=W,说明够减,执行结果存放在REG1中,如果REG1<W,
说明不够减,执行的结果为负数,则用其补码形式表示,存放于REG1中。

这样理解对吗?还有那个标志位‘C’的值怎么理解?跟51的不一样,费解啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。