This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C file that also has assembly code

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?

Parents
  • 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-- )
    allows the Compiler to use the DJNZ instruction for the decrement, test, and jump - all in one instruction!

Reply
  • 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-- )
    allows the Compiler to use the DJNZ instruction for the decrement, test, and jump - all in one instruction!

Children
No data