这两个代码是否相同?
Assambler - >
_asm
INCF PR4,0,ACCESS
CPFSLT TMR4,ACCESS
_endasm
C - >
++PR4;
if (PR4 < TMR4)
PIR3bits.TMR4IF = 1;
如果没有,应如何翻译assambler代码?
亲切的问候:)
答案 0 :(得分:0)
第一个答案是否定的,但我不确定如何翻译它!
INCF PR4,0,ACCESS //(INCF f,d)(增量f)(f + 1 - &gt; d) “递增PR4寄存器”工作寄存器(累加器)“在ACCESS中换句话说: 获得PR_L的PR +1
WREG = PR +1;
CPFSLT TMR4,ACCESS //(CPFSLT f)(比较f / w,如果f =&GT;如果TMR4&lt; WREG
=&GT;如果TMR4> = WREG 应该给:
嗯......对吗?if (TMR4 >= WREG)
WREG = PR4 + 1;
答案 1 :(得分:0)
其他人可以验证这一点,我认为下面的代码是正确的!
_asm
INCF PR4,0,ACCESS //PR4+1 destination WREG, Access bank
CPFSLT TMR4,ACCESS //Compare TMR4 with contents of WREG in Access bank, Skip if TMR4 < WREG
_endasm
/* Above says: if (TMR4 <= PR4 + 1)*/
PIR3bits.TMR4IF = 1; // Then do this line