登录
|
注册会员
开启辅助访问
设为首页
收藏本站
扫一扫关注官方微信
论坛
BBS
M币充值
M currency prepaid phone
M币获取
附件中心
搜索
search
全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
MCU资讯论坛
»
论坛
›
单片机论坛
›
51单片机论坛
›
给大家介绍一下用Keil C51实现C语言和汇编语言混合编程 ...
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版
给大家介绍一下用Keil C51实现C语言和汇编语言混合编程的方法,
[复制链接]
3765
0
ad***
管理员
发表于 2012-9-2 11:55:51
|
查看全部
|
阅读模式
本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要
登录
才可以下载或查看,没有帐号?
注册会员
x
大家都知道,在嵌入式开发中,C语言的可移植性强和可读性好等优点,而汇编语言的高效、快速及可直接对硬件进行操作等优点又是C语言所难以达到的,
KEIL
C51
支持C和汇编混合编程的方法,则将这两者的优点完美的结合!
如用此方法实现51
单片机
对320kbps mp3文件的播放就是一个很好的实例!
所谓混合编程,就是在一个项目中,同时使用C和汇编两种语言。 C语言和汇编语言混合编程的方法形式多样,可以是以汇编语言为主体,在其中内嵌部分C语言;也可以是以C语言为主体在其中加入部分汇编语言(此方法实用价值较高,而被工程师们广泛的采用)。在此方法中,用汇编语言编写对有关硬件的驱动和处理、复杂的算法、实时性要求较高等底层的东西,来满足单片机对某些硬件高效、快速、精确的处理等性能上的要求。用C语言来编写程序的主体部分。这样就将C语言的可移植性强和可读性好与汇编语言的高效、快速及可直接对硬件进行操作等优点相结合。两者优劣互补、相得益彰,加快我们产品的开发周期,具有极高的现实意义和实用价值!
在KEIL C51中加入的汇编代码需按照其编译器中约定的规则才可以实现C语言程序对汇编代码的调用。即KEIL C51的命名规则和参数传递规则。
一. KEIL C51的命名规则
在KEIL C51中,编译器对C语言程序中的函数会自动的进行转换,转换规则如下表:
函数属性 函数举例 段中的函数名
无参数或无寄存器参数传递的函数 void func1(void) func1
含通过寄存器传递的参数 void func2(int) _func2
可重入函数 void func3(char)reentrant _?func3
二. KEIL C51函数的参数传递规则
(一)通过寄存器传递的函数参数表
参数长度 第1个形参 第2个形参 第3个形参
1字节(char) R7 R5 R3
2字节(int) R6(H) R7 R4(H) R5 R2(H) R3
3字节(通用指针) R1(H)~R3
4字节(long) R4(H)~R7
(二)函数返回值使用的寄存器列表
返回类 使用的寄存器
位数据(bit) 位累加器CY
1字节(char) R7
2字节(int) R6(H) R7
3字节(通用指针) R3(类型)R2(H) R1
4字节(long) R4(H)~R7
4字节(float) R4(H)~R7,32位IEEE格式,指数和符号位在R7
KEIL_C51在线汇编举例.rar
(18.71 KB, 下载次数: 0)
2012-9-2 11:55 上传
点击文件名下载附件
嵌入式开发
,
C语言
相关帖子
RISC-V MCU IDE MRS(MounRiver Studio)开发之:设置调试前不自动编译
RISC-V MCU IDE MRS(MounRiver Studio)开发之:设置工程编码字符集
RISC-V MCU IDE MRS(MounRiver Studio)开发之:添加标准数学库引用
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 设置函数的优化等级
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 编译后打印FLASH及RAM使用占比信息
RISC-V MCU IDE MRS(MounRiver Studio)开发之: 解决编译后显示RAM占用率100%的问题
RISC-V IDE MounRiver Studio V1.60更新点介绍
RISC-V IDE MRS使用笔记(一):Target mode doesn't match
求助
国产单片机推荐:无锡矽杰微电子XC8P8600
举报
回复
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖后跳转到最后一页
回复
转播
评分
分享
打开支付宝扫一扫,最高立得1212元红包
搜索
本版
帖子
用户
热搜:
传感器
51串口程序
电子管放大器
夾式電表
夾式電流
Mentor论坛
打印机
版块推荐
百宝箱
My 布拉格
无边框Z9
Z9Max
Z9mini
nubia动态
问题 & 建议
资源分享
爱拍
同城会
牛仔生活
查看论坛所有版块>>
每日签到
论坛任务
摄影技巧
跳蚤市场
互助问答
论坛导读
申请内测
红包中心
每日摇一摇
活动中心
网站地图
官方旗舰店
图文热点
低成本、高性能、带EEPROM了解一下
无锡矽杰微电子的XCE855E 是一颗带 EEPROM 的 8 位单片机,专为多 IO 产品的应用而设
工控仪表/水电气表LCD驱动/抗干扰液晶段码
产品品牌:永嘉微电/VINKA 产品型号:VK2C21A 封装形式:SOP28 概述 VK2C21是一
为什么电动车会着火?原因是什么?电动车充
其实电动车起火的新闻我们也不是第一次看到了,让很多人对电动车的安全性产生质疑,但
性价比超高的国产单片机了解一下
hello大家好,我是无锡矽杰微电子的马甲小号 今天给大家介绍一颗单片机,我们的
上手简单,开发资料齐全的触摸单片机了解一
hello,各位工程师大大们新年快乐 我是无锡矽杰微电子的马甲号。 我司新推出了
更多
精华推荐
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶段码
软件模拟2812通信协议导致的种种问题,你遇
适用于电子鞭炮、电子蜡烛灯等方案的单片机
为什么电动车会着火?原因是什么?电动车充
性价比超高的国产单片机了解一下
国产单片机推荐I 低功耗、强驱动、极具性价
上手简单,开发资料齐全的触摸单片机了解一
更多
社区学堂
低成本、高性能、带EEPROM了解一下
工控仪表/水电气表LCD驱动/抗干扰液晶
低成本、高性能、带EEPROM了解一下
无锡矽杰微电子的XCE855E 是一颗带 EEPROM 的 8 位单片机,专为多 IO 产品的应用而设
工控仪表/水电气表LCD驱动/抗干扰液晶段码
产品品牌:永嘉微电/VINKA 产品型号:VK2C21A 封装形式:SOP28 概述 VK2C21是一
为什么电动车会着火?原因是什么?电动车充
其实电动车起火的新闻我们也不是第一次看到了,让很多人对电动车的安全性产生质疑,但
更多
客服中心
QQ:187196467
服务时间:周一至周日 8:30-20:30
在线客服
客服微博
产品咨询
售后中心
关注我们
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
QQ:187196467
周一到周日 8:30-22:00 (全年无休)
7 x 24小时在线客服
手机版
Powered by
MCUZX!
X3.4 © 2008-2015
MCU资讯论坛
版权所有
京ICP备18035221号-2
客服QQ: 187196467
技术支持:
MCU资讯论坛
|
网站地图
快速回复
返回顶部
返回列表