最近在看十速
芯片资料,碰到“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的不一样,费解啊!
一周热门 更多>