step2. 在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC
File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
step3. 根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中,该文件必须作为工
程的最后文件;
step4. build这个工程后将会产生一个CFUNC.SRC的文件,将这个文件改名为CFUNC.A51(也可以通过编译选项直接产生CFUNC.A51文
件),然后在工程里去掉库文件(如C51S.Lib)和CFUNC.c,而将CFUNC.A51添加到工程里。
//CFUNC.SRC文件如下
.\CFUNC.SRC generated from: CFUNC.c- NAME CFUNC
- ?PR?_AFUNC?CFUNC SEGMENT CODE
- ?BI?_AFUNC?CFUNC SEGMENT BIT OVERLAYABLE
- PUBLIC ?_AFUNC?BIT
- PUBLIC _AFUNC
- RSEG ?BI?_AFUNC?CFUNC
- ?_AFUNC?BIT:
- v_bflag?041: DBIT 1
- ; #define uchar unsigned char
- ; #define uint unsigned int
- ;
- ; uint AFUNC(uchar v_achr,bit v_bflag)
- RSEG ?PR?_AFUNC?CFUNC
- _AFUNC:
- USING 0
- ; SOURCE LINE # 5
- ;---- Variable 'v_achr?040' assigned to Register 'R7' ----
- ; {
- ; SOURCE LINE # 6
- ; uchar tmp_vchr;
- ; uint tp_vint;
- ;
- ; tmp_vchr=v_achr;
- ; SOURCE LINE # 10
- ;---- Variable 'tmp_vchr?042' assigned to Register 'R5' ----
- MOV R5,AR7
- ; tp_vint=(uint)v_bflag;
- ; SOURCE LINE # 11
- MOV C,v_bflag?041
- CLR A
- RLC A
- ;---- Variable 'tp_vint?043' assigned to Register 'R6/R7' ----
- ; return tmp_vchr+(tp_vint<<8);
- ; SOURCE LINE # 12
- MOV R6,A
- MOV R4,#00H
- CLR A
- ADD A,R5
- MOV R7,A
- MOV A,R4
- ADDC A,R6
- MOV R6,A
- ; }
- ; SOURCE LINE # 13
- ?C0001:
- RET
- ; END OF _AFUNC
- END
|