What is the most efficient way of assembly instruction ADDC in C51? Is the following allowed
int add_high,carry,low_poti; TL0=0x69+low_poti; TH0=0xF8+add_high+CY;
int add_high,carry,low_poti; TL0=0x69+low_poti; if (CY==1) carry=1; else carry=0; TH0=0xF8+add_high+carry;
Why don't you write C code rather than trying to write assembler code in C. Then, you won't have to worry about the carry bit and such things. For example:
unsigned int new_timer_reload; unsigned int low_poti; new_timer_reload = 0xF869 + low_poti; TL0 = new_timer_reload; TH0 = new_timer_reload >> 8;
Jon is right - if you want to do assembler programming, do it in assembler! It is not safe to assume that the Carry flag will contain the "correct" value between 'C' statements (it might happen to work in some specific case, but it ain't necessarily so!) 'C' provides you with multi-byte data types specifically so that you don't have to manually mess about with the carry flag!