這兩個代碼意思一樣嗎?彙編語言到C語言轉換INCF和CPFSLT
Assambler - >
Ç - >
++PR4;
if (PR4 < TMR4)
PIR3bits.TMR4IF = 1;
如果沒有,應該如何assambler代碼翻譯?
親切的問候:)
這兩個代碼意思一樣嗎?彙編語言到C語言轉換INCF和CPFSLT
Assambler - >
Ç - >
++PR4;
if (PR4 < TMR4)
PIR3bits.TMR4IF = 1;
如果沒有,應該如何assambler代碼翻譯?
親切的問候:)
其他人可以驗證這一點,我認爲下面的代碼是正確的!
_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
第一個答案是否定的,但是我不知道該如何把它翻譯!
INCF PR4,0,ACCESS //(INCF女,d)(f加)(F + 1 - > d) 「遞增PR4寄存器 「工作寄存器(累加器)」 在換句話說ACCESS: 獲取PR 1至WREG
WREG = PR +1;
CPFSLT TMR4,ACCESS //(CPFSLT F)(比較F/W,則跳過如果f<瓦特)(FW,跳過如果f < W) 比較TMR4 < WREG
=>跳過如果TMR4 < WREG =>如果TMR4> = WREG
應該給:
if (TMR4 >= WREG)
WREG = PR4 + 1;
嗯...對吧?
這是什麼CPU /架構? – 2012-01-09 10:44:53
它是微芯片的PIC18F87J50編譯器C18 – Christian 2012-01-09 11:01:17