We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
This ex. will not work
char data test; char TestF(void); char TestF(void) { if (test == 0x8A) { //... return(1); } } //Take a look at the Assambly code ; FUNCTION TestF (BEGIN) ; SOURCE LINE # 5 ; SOURCE LINE # 6 ; SOURCE LINE # 7 R MOV R7,test MOV A,R7 RLC A SUBB A,ACC MOV R6,A MOV A,R7 XRL A,#08AH ORL A,R6 R xJNZ ?C0002 ; SOURCE LINE # 8 ; SOURCE LINE # 10 MOV R7,#01H ; SOURCE LINE # 11 ; SOURCE LINE # 12 ?C0002: RET
char data test; char TestF(void); char TestF(void) { if (test == (char)0x8A) { //... return(1); } } //Take a look at the Assambly code ; FUNCTION TestF (BEGIN) ; SOURCE LINE # 5 ; SOURCE LINE # 6 ; SOURCE LINE # 7 R MOV A,test R xJNE A,#08AH,?C0002 ; SOURCE LINE # 8 ; SOURCE LINE # 10 MOV R7,#01H ; SOURCE LINE # 11 ; SOURCE LINE # 12 ?C0002: RET
hi, And we can see that -118 = 0x8a. Soo why can't i compare a signed char to an nagative hex value? Ofcourse you may! But then type: if (test == -0x76) Just indicate to compiler that value is negative!! Regards, Oleg
Thanks Now I'm satisfied /Ingo