-4.6 With -noregparms Option</A>
-</H2>
-
-<P>
-When the source is compiled with -noregparms option , space is allocated
-for each of the parameters passed to a routine.
-
-<P>
-
-<H3><A NAME="SECTION00056100000000000000">
-4.6.1 Assembler Routine Non-reentrant</A>
-</H3>
-
-<P>
-In the following example the function <B>cfunc</B> calls an assembler
-routine <B>asm_func</B>, which takes two parameters.
-
-<P>
-<FONT SIZE="-1">extern int asm_func( unsigned short, unsigned short);</FONT>
-<P>
-
-
-<P>
-<FONT SIZE="-1"> </FONT>
-<BR><FONT SIZE="-1">int c_func (unsigned short i, unsigned short j) </FONT>
-<BR><FONT SIZE="-1">{ </FONT>
-<BR><FONT SIZE="-1"> return asm_func(i,j); </FONT>
-<BR><FONT SIZE="-1">}</FONT>
-<BR><FONT SIZE="-2">int main() </FONT>
-<BR><FONT SIZE="-2">{ </FONT>
-<BR><FONT SIZE="-2"> return c_func(10,9); </FONT>
-<BR><FONT SIZE="-2">}</FONT>
-<P>
-
-
-<P>
-The corresponding assembler function is:-
-
-<P>
-<FONT SIZE="-2"> .globl _asm_func_PARM_1 </FONT>
-<BR><FONT SIZE="-2"> .globl _asm_func_PARM_2 </FONT>
-<BR><FONT SIZE="-2"> .globl _asm_func </FONT>
-<BR><FONT SIZE="-2"> .area OSEG </FONT>
-<BR><FONT SIZE="-2">_asm_func_PARM_1: .ds 1 </FONT>
-<BR><FONT SIZE="-2">_asm_func_PARM_2: .ds 1 </FONT>
-<BR><FONT SIZE="-2"> .area CSEG </FONT>
-<BR><FONT SIZE="-2">_asm_func: </FONT>
-<BR><FONT SIZE="-2"> mov a,_asm_func_PARM_1 </FONT>
-<BR><FONT SIZE="-2"> add a,_asm_func_PARM_2 </FONT>
-<BR><FONT SIZE="-2"> mov dpl,a </FONT>
-<BR><FONT SIZE="-2"> mov dpl,#0x00 </FONT>
-<BR><FONT SIZE="-2"> ret</FONT>
-<P>
-
-
-<P>
-Note here that the return values are placed in 'dpl' - One byte return
-value, 'dpl' LSB & 'dph' MSB for two byte values. 'dpl', 'dph' and
-'b' for three byte values (generic pointers) and 'dpl','dph','b' &
-'acc' for four byte values.
-
-<P>
-The parameter naming convention is <B>_<function_name>_PARM_<n>,</B>
-where n is the parameter number starting from 1, and counting from
-the left. i.e. the <TT><B><FONT SIZE="-1">left-most parameter
-name will be _<function_name>_PARM_1.</FONT></B></TT>
-<P>
-
-
-<P>
-Assemble the assembler routine with the following command.
-
-<P>
-asx8051 -losg asmfunc.asm
-
-<P>
-Then compile and link the assembler routine to the C source file with
-the following command,
-
-<P>
-sdcc cfunc.c asmfunc.rel
-
-<P>
-
-<H3><A NAME="SECTION00056200000000000000">
-4.6.2 Assembler Routine(reentrant)</A>
-</H3>
-
-<P>
-In this case the parameters will be passed on the stack , the parameters
-are pushed from right to left i.e. after the call the left most parameter
-will be on the top of the stack. Here is an example.
-
-<P>
-<FONT SIZE="-1">extern int asm_func( unsigned short, unsigned short);</FONT>
-<P>
-
-
-<P>
-<FONT SIZE="-1"> </FONT>
-<P>
-
-
-<P>
-<FONT SIZE="-1">int c_func (unsigned short i, unsigned short j) reentrant
-</FONT>
-<BR><FONT SIZE="-1">{ </FONT>
-<BR><FONT SIZE="-1"> return asm_func(i,j); </FONT>
-<BR><FONT SIZE="-1">}</FONT>
-<BR><FONT SIZE="-2">int main() </FONT>
-<BR><FONT SIZE="-2">{ </FONT>
-<BR><FONT SIZE="-2"> return c_func(10,9); </FONT>
-<BR><FONT SIZE="-2">}</FONT>
-<P>
-
-
-<P>
-The corresponding assembler routine is.
-
-<P>
-<FONT SIZE="-2"> .globl _asm_func </FONT>
-<BR><FONT SIZE="-2">_asm_func: </FONT>
-<BR><FONT SIZE="-2"> push _bp </FONT>
-<BR><FONT SIZE="-2"> mov _bp,sp </FONT>
-<BR><FONT SIZE="-2"> mov a,_bp </FONT>
-<BR><FONT SIZE="-2"> clr c </FONT>
-<BR><FONT SIZE="-2"> add a,#0xfd </FONT>
-<BR><FONT SIZE="-2"> mov r0,a </FONT>
-<BR><FONT SIZE="-2"> mov a,_bp </FONT>
-<BR><FONT SIZE="-2"> clr c </FONT>
-<BR><FONT SIZE="-2"> add a,#0xfc </FONT>
-<BR><FONT SIZE="-2"> mov r1,a </FONT>
-<BR><FONT SIZE="-2"> mov a,@r0 </FONT>
-<BR><FONT SIZE="-2"> add a,@r1 </FONT>
-<BR><FONT SIZE="-2"> mov dpl,a </FONT>
-<BR><FONT SIZE="-2"> mov dph,#0x00 </FONT>
-<BR><FONT SIZE="-2"> mov sp,_bp </FONT>
-<BR><FONT SIZE="-2"> pop _bp </FONT>
-<BR><FONT SIZE="-2"> ret</FONT>
-<P>
-
-
-<P>
-The compiling and linking procedure remains the same, however note
-the extra entry & exit linkage required for the assembler code, _bp
-is the stack frame pointer and is used to compute the offset into
-the stack for parameters and local variables.
-
-<P>
-
-<H2><A NAME="SECTION00057000000000000000">
-4.7 External Stack</A>