社区
单片机/工控
帖子详情
Keil C51和ASM混合编程的问题
romyks
2003-08-27 01:14:11
请问各位高手如何用汇编写供KEIL C51调用的子程序和函数.例如C的函数原型为
unsigned int fun(char v1,int v2,bit v3,long v4).
在SMALL COMPACT LARGE下如何用汇编写出这个函数,在C51中调用它时,又如何传递参数,还有一个问题,如何在汇编中直接使用在C51中定义的变量.
...全文
139
7
打赏
收藏
Keil C51和ASM混合编程的问题
请问各位高手如何用汇编写供KEIL C51调用的子程序和函数.例如C的函数原型为 unsigned int fun(char v1,int v2,bit v3,long v4). 在SMALL COMPACT LARGE下如何用汇编写出这个函数,在C51中调用它时,又如何传递参数,还有一个问题,如何在汇编中直接使用在C51中定义的变量.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qila
2003-09-17
打赏
举报
回复
不是仿真器支持,是要编译器支持,只要你有完整的c51编译器就可以了!!
到老古看看,我记得好象有的!
qila
2003-09-15
打赏
举报
回复
哎,徐爱均书上有很详细的说明,我原来也搞不清楚,但看了之后明白了,再看看keil中的a51文档,这两个东西网上都有的下载
BTW888
2003-09-15
打赏
举报
回复
借地盤問個問題.
仿真器支持c51和asm混合編程么
jhwjh
2003-09-15
打赏
举报
回复
下载的网址是多少啊?
gcai
2003-09-13
打赏
举报
回复
还有要注意堆栈
gcai
2003-09-13
打赏
举报
回复
不行,贴出来格式都变了
可以看看电子设计世界,Keil C51使用详解这个文章,关键是参数传递
函数名汇编就用 _fun 应该可以了
caijb2000@163.com
gcai
2003-09-13
打赏
举报
回复
C模块与汇编模块的接口较简单,分别用C51与A51对源文件进行编译,然后用L51将obj文件连接即可,关键问题在于C函数与汇编函数之间的参数传递问题,C51中有两种参数传递方法。
(1) 通过寄存器传递函数参数
最多只能有3个参数通过寄存器传递,规律如下表:
参数数目
char
int
long,float
一般指针
1
2
3
R7
R5
R3
R6 & R7
R4 & R5
R2 & R3
R4~R7
R4~R7
R1~R3
R1~R3
R1~R3
(2) 通过固定存储区传递(fixed memory)
这种方法将bit型参数传给一个存储段中:
?function_name?BIT
将其它类型参数均传给下面的段:?function_name?BYTE,且按照预选顺序存放。
至于这个固定存储区本身在何处,则由存储模式默认。
(3) 函数的返回值
函数返回值一律放于寄存器中,有如下规律:
return type
Registev
说明
bit
标志位
由具体标志位返回
char/unsigned char 1_byte指针
R7
单字节由R7返回
int/unsigned int 2_byte指针
R6 & R7
双字节由R6和R7返回,MSB在R6
long&unsigned long
R4~R7
MSB在R4, LSB在R7
float
R4~R7
32Bit IEEE格式
一般指针
R1~R3
存储类型在R3 高位R2 低R1
(4) SRC控制
该控制指令将C文件编译生成汇编文件(.SRC),该汇编文件可改名后,生成汇编.ASM文件,再用A51进行编译。
C51
与
ASM
混合
编程
技术研究
C51
与
ASM
混合
编程
技术是嵌入式系统开发中的一个重要工具,通过合理地结合两种语言的优点,可以有效地提高程序的执行效率和精确度。掌握
C51
与汇编语言的接口规则对于实现高效的
混合
编程
至关重要。开发者需要熟练运用...
KEIL
c 调用
ASM
汇编语言8051系列单片机扫描键盘
总结起来,
KEIL
C调用
ASM
汇编语言实现8051单片机的键盘扫描和外部存储器访问,需要深入理解8051的硬件结构和指令集,以及
KEIL
C的
混合
编程
特性。通过这种方式,可以充分利用C语言的高级抽象和汇编语言的低级性能优化...
C51
与汇编
混合
编程
###
C51
与汇编
混合
编程
详解 #### 一、
C51
与汇编
混合
编程
的概念及应用场景
C51
是一种专门为8051微控制器系列优化的C语言,它结合了C语言的强大功能和对8051硬件的直接访问能力。而汇编语言则是最接近微控制器硬件的...
KEIL
C51
所支持的C语言和汇编语言
混合
编程
的方法
KEIL
C51
是一款针对8051系列单片机的集成开发环境,它支持C语言和汇编语言的
混合
编程
,以充分利用两种语言的优势。51单片机虽然广泛使用,但由于执行速度相对较慢,因此在
编程
时需要考虑效率和技巧。C语言因为其可...
C51
和汇编
混合
编程
###
C51
与汇编
混合
编程
详解 #### 一、概述
C51
与汇编
混合
编程
是指在基于8051微控制器的开发中,将
C51
语言与汇编语言结合使用的
编程
方法。这种方法充分利用了两种语言的优势:
C51
提供了高级语言的便捷性和模块化能力...
单片机/工控
27,510
社区成员
28,796
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章