hi, I'm writting code (8051) that has both C and assambly in the same file. for example: void main() { long temp; #pragma asm mov a, #0; //assambly #pragma endasm temp = a*1000; //C } problems: 1. a (acc) is not recognizable in the C part.what is the BEST thing to do? 2. if I'll continue this proram and add another asm part will the last value of a,for example zero, and other reg/ptr will be saved?
1. a (acc) is not recognizable in the C part.what is the BEST thing to do? Well, your C code does not "know" about the registers of the 8051 unless you TELL it. The accumulator is an SFR and C51 provides a way to DECLARE it.
sfr ACC = 0xE0;
void main() { long temp; #pragma asm mov a, #0; //assambly #pragma endasm temp = ACC*1000; //C }