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
  • To Andy Neil,
    I have read the manual, of course. But in the manual's example, it only calls one C function, and it doesn't save any registers!!! So I confuse that if the first C function calls another C function in it, does it save the registers?
    I also see that, in the Large Model Example, page 171, line 11:

         MOV R0, #?_funtion?BYTE+3
    
    I think it must be:
          MOV DPTR, #_?function?BYTE+3
    
    Does it right?

Reply
  • To Andy Neil,
    I have read the manual, of course. But in the manual's example, it only calls one C function, and it doesn't save any registers!!! So I confuse that if the first C function calls another C function in it, does it save the registers?
    I also see that, in the Large Model Example, page 171, line 11:

         MOV R0, #?_funtion?BYTE+3
    
    I think it must be:
          MOV DPTR, #_?function?BYTE+3
    
    Does it right?

Children