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

Call C function (that calls another C function) from assembly code

Hi all,
I want to call a C function (for example: func1() ) from my old assembly code. The problem is that if func1() calls another C function( func2() ), what will happen? How does the compiler pass parameters to the second function? If it also passes through R1-R7, does it destroy the parameters of func1()?
Thanks for reading this topic.

Parents
  • one thing not mentioned in the above link:

    C is free to use (and not save) ANY register it see fit. This may/will change with different releases and different optimizations. Thus so called "testting" to find which registers are affecter is worthless as "testing' often is.

    Thus you MUST code like this
    lcall Cfunct ; ALL REGISTRES INVALID AFTER CALL

    Erik

Reply
  • one thing not mentioned in the above link:

    C is free to use (and not save) ANY register it see fit. This may/will change with different releases and different optimizations. Thus so called "testting" to find which registers are affecter is worthless as "testing' often is.

    Thus you MUST code like this
    lcall Cfunct ; ALL REGISTRES INVALID AFTER CALL

    Erik

Children