För SUBWF, språkmässigt "subtrahera W från F" dvs f - W , gäller att C = 0 om W > f.
För SUBLW, som språkligt låter som "subtrahera L från W dvs W - k, gäller att C = 0 om W > k.
Fördelen är att instruktionerna fungerar på samma vis, trots hur de fungerar språkligt.
Nästa steg är att göra dem begripliga.
Främst för att slippa den logiska akrobatik som krävs för att få ut korrekt resultat.
Jag tänker att det är samma test efter både SUBLW och SUBWF.
Har jag fått ihop det rätt här?
Kod: Markera allt
#define IF_W_More BTFSS STATUS, C
#define IF_W_Less BTFSC STATUS, C
Kod: Markera allt
#define WHEN BTFSC
#define IF_not BTFSS
Att använda "WHEN" istället för "IF" är mest för att få fraserna att balansera mot varandra.
För test av noll och lika verkar det bli:
Kod: Markera allt
#define IF_Equal BTFSC STATUS, Z
#define IFnotEqual BTFSS STATUS, Z
Ett "[fras]_THEN" är underförstått i alla fallen ovan.
Att skriva fraser med definitioner av denna typ tycker jag fungerar väl.
Andra tycker annat.
Men om det bortses från personlig åsikt i den frågan - ser ovan korrekt ut?