| |||||
Technical Support Support Resources
Product Information | C51: MIXING C AND ASSEMBLYInformation in this article applies to:
QUESTIONDo you have any examples of how to mix C and assembly? ANSWERThe following example program shows how to mix C and assembly in your 8051 programs. This example starts with a MAIN C function which calls a routine in assembly which then calls a C function. The MAIN C module appears as follows:
extern void a_func (void);
void main (void)
{
a_func ();
}
The function a_func is an assembly routine:
NAME A_FUNC
?PR?a_func?A_FUNC SEGMENT CODE
EXTRN CODE (c_func)
PUBLIC a_func
RSEG ?PR?a_func?A_FUNC
a_func:
USING 0
LCALL c_func
RET
END
Note that this assembly routine calls c_func which is a C function:
void c_func (void)
{
}
The actual code for the assembly module was generated using the SRC pragma and the following C source file:
extern void c_func (void);
void a_func (void)
{
c_func ();
}
You may download C2ASM2C.ZIP from the Keil web site. SEE ALSO
FORUM THREADSThe following Discussion Forum threads may provide information related to this topic.
Last Reviewed: Monday, February 05, 2007 | ||||
| |||||