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?
Do you really need the assembly? With its optimisations & processor-specific extensions, C51 can produce some pretty tight code. You can examine the code generated by the compiler by specifying the CODE directive (or checking 'Assembly Code' in the Compiler section on the 'Listing' tab in uVision Project Options) Your 'C' structure can affect efficiency; eg,
for( idx = X; idx != 0; idx-- )