KEIL编程C语言嵌入汇编.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
keil C语言与汇编语言混合编程 1、在 C 文件中要嵌入汇编代码片以如下方式加入汇编代码: #pragma ASM ; Assembler Code Here #pragma ENDASM 2、在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Optionsfor...”, 点击右边的 “Generate Assembler SRC File” 和“Assemble SRC File” 使检查框由灰色变成黑色(有效)状态 3、根据选择的编译模式,把相应的库文件(如 Small 模式时,是 Keil\C51\Lib\C51S.Lib)加入工程中, 该文件必须作为工程的最后文件,在默认 安装盘KEIL/C51/LIB/C51S.Lib 4、编译,即可生成目标代码 来个实例吧: #includereg52.h #define uchar unsigned char sbit LED1=P1^0; /****************************************** C嵌入汇编例程 ******************************************/ void delay_ms(void) { #pragma asm MOV R0,#0FFH MOV R1,#0FFH D_LOOP1: DJNZ R0,D_LOOP1 MOV R0,#0FFH DJNZ R1,D_LOOP1 #pragma endasm } void main(void) { uchar i; P1 = 0xFF; while(1) { i++; delay_ms(); if(i=7) { LED1 =~LED1; i=0; } } } 2 . 无参数传递的函数调用 C51调用汇编函数 1.无参数传递的函数调用 先来个例子:其中C_ASM.c和DELAY.a为项目中的两个文件 /***********************C_ASM.c************************************** *********/ #includereg52.h #define uchar unsigned char extern void delay100(); sbit LED1=P1^1; /****************************************** C嵌入汇编例程 ******************************************/ void main(void) { uchar i; P1 = 0xFF; while(1) { i++; delay100(); if(i=7) { LED1 =~LED1; i=0; } } } ;***********************DELAY100.a*************************** ?PR?DELAY100 SEGMENT CODE; //在程序存储区中定义段 PUBLIC DELAY100; //声明函数 RSEG ?PR?DELAY100; //函数可被连接器放置在任何地方 DELAY100: MOV R0,#0FFH MOV R1,#0FFH D_LOOP1: DJNZ R0,D_LOOP1 MOV R0,#0FFH DJNZ R1,D_LOOP1 RET END 在C_ASM.c文件中,先声明外部函数,然后直接在main中调用即可。 在DELAY100.a中, ?PR?DELAY100SEGMENTCODE; 作用是在程序存储区中定义段,DELAY100 为段名,?PR?表示段位于程序存储区内 PUBLIC DELAY100; 作用是声明函数为公共函数 RSEG ?PR?DELAY100; 表示函数可被连接器放置在任何地方,RSEG是

文档评论(0)

00625 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档