第一步;按照建立普通c51程序的方法,建立c51工程文件。
建立两个*.c文件(c51shi.c和asm.c),加入工程。c51shi.c为主程序,asm.c为汇编函数。
第二步:在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
第三步: 根据选择的编译模式,把相应的库文件加入工程中,该文件必须作为工程的最后文件;
注:库文件说明
C51S.LIB - 没有浮点运算的 Small model
C51C.LIB - 没有浮点运算的 Compact model
C51L.LIB - 没有浮点运算的 Large model
C51FPS.LIB - 带浮点运算的 Small model
C51FPC.LIB - 带浮点运算的 Compact model
C51FPL.LIB - 带浮点运算的 Large model
第四步: build这个工程后将会产生一个asm.SRC的文件,将这个文件改名为asm.A51,然后在工程里去掉库文件(如C51S.Lib)和asm.c,而将asm.A51添加到工程里。
第五步: 检查c51shi.c的“Generate Assembler SRC File”和“Assemble SRC File”是否有效,若是有效则点击使检查框变成无效状态;再次build这个工程,到此你已经得到汇编函数的主体,修改函数里面的汇编代码就得到你所需的汇编函数了。
c51.c代码如下:
#include <reg52.h>
//*************** 函数定义 ******************
void asm(void); //汇编函数
//*************** 主程序 ********************
void main(void)
{
while(1)
{
asm();
}
}
asm.c代码如下:
void asm(void)
{
}
经过以上五步后,您将得到一个asm.a51文件,在文件中红色代码后添加您的汇编语句即可。
; ./asm.SRC generated from: asm.c
; COMPILER INVOKED BY:
; C:/Keil/C51/BIN/C51.EXE asm.c BROWSE DEBUG OBJECTEXTEND SRC(./asm.SRC)
NAME ASM
?PR?asm?ASM SEGMENT CODE
PUBLIC asm
;
;
;
; void asm(void)
RSEG ?PR?asm?ASM
asm:
//在此处添加您的汇编代码**************
ret
END
-----------------------------------------------------------------------------------------
第一步:在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
第二步:根据选择的编译模式,把相应的库文件(如 Small 模式时,是Keil/C51/Lib/C51S.Lib)加入工程中, 该文件必须作为工程的最后文件;
C51S.LIB - 没有浮点运算的 Small model
C51C.LIB - 没有浮点运算的 Compact model
C51L.LIB - 没有浮点运算的 Large model
C51FPS.LIB - 带浮点运算的 Small model
C51FPC.LIB - 带浮点运算的 Compact model
C51FPL.LIB - 带浮点运算的 Large model
第三步:在需要嵌入汇编的地方以如下方式加入汇编代码;
#pragma ASM
; Assembler Code Here
#pragma ENDASM
第四步:编译,即可生成目标代码;
|