本章重点介绍如何在C语言中插入汇编语言。要不是有记录,真不知道怎么搞。
/*
你在 Project Workspace窗口中,将光标移到DELAY.c处,点下鼠标右键,选择"Options for file DELAY.c",
点击右边的"Generate Assembler SRC File"和“Assemble SRC File",使检查框由灰色变成黑色(有效)状态;
将C:\KEIL\C51\C51S.lib可以加,也可以不加进来;
//注意1: 书写汇编语句时,标号要顶格书写,否则不能编译成功;
//注意2: #pragma asm和#pragma endasm的后面不可以打上分号;
//注意3: 不要在汇编结束时,打上RET或END;
*/
//main.c程序如下:
#include <reg51.h>
#include <DELAY.h>
void main(void)
{ while(1)
{ delay10ms();
delay100ms(10); //延时1s;
}
}
//delay.c程序如下:
#include <reg51.h>
void delay10ms()
{
#pragma asm
del10ms: mov r4,#20;
del11: mov r6,#0ffh;
del21: djnz r6,del21;
djnz r4,del11;
#pragma endasm
}
void delay100ms(char i)
{ for(i=0;i<10;i++)
{
#pragma asm
del10msa: mov r4,#20;
del11a: mov r6,#0ffh;
del21a: djnz r6,del21a;
djnz r4,del11a;
#pragma endasm
}
}
//delay.h程序如下:
extern delay10ms();
extern delay100ms(char i);