社区
单片机/工控
帖子详情
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中定义的变量.
...全文
121
7
打赏
收藏
Keil C51和ASM混合编程的问题
请问各位高手如何用汇编写供KEIL C51调用的子程序和函数.例如C的函数原型为 unsigned int fun(char v1,int v2,bit v3,long v4). 在SMALL COMPACT LARGE下如何用汇编写出这个函数,在C51中调用它时,又如何传递参数,还有一个问题,如何在汇编中直接使用在C51中定义的变量.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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进行编译。
keil
C51
嵌入汇编准则与技术研究
keil
C51
与汇编
混合
编程
技巧与准则,很详细,难得的一份经典资料。
uC/OS-II在C8051F上的移植
实现μC/OS-II的移植,要求所用的C编译器支持
混合
编程
。
KEIL
C51
可为众多的8051派生器件
编程
。我们选用的是
KEIL
7.02集成开发环境,仿真板基于C8051F015芯片。 2 移植中所需修改的文件 和CPU相关的文件主要有三...
keil
c51
c语言支持,介绍一下
KEIL
C51
所支持的C语言和汇编语言
混合
编程
的方法!
注册阅 12727|回 15最后登录2015-5-3在线时间8 小时威望63分芯积分E金币好友 发表于2010-12-8 19:54介绍一下
KEIL
C51
所支持的C语言和汇编语言
混合
编程
的方法![复制链接]51单片机是最早的单片机,也是在国内应用最...
Keil
C51
编译及连接技术
主要介绍
Keil
C51
的预处理方法如宏定义、常用的预处理指令及文件包含指令,
C51
编译库的选择及代码优化原理,
C51
与汇编
混合
编程
的方法与实现以及超过64KB空间的地址分页方法的
C51
实现。 教学目标 1.了解
Keil
C51
...
汇编语言和
c51
混合
编程
,
C51
与汇编语言
混合
编程
函数内部
混合
编程
若想在C语言函数内部使用汇编语言,应使用以下Cx51编译器控制命令:#pragma
asm
;;; Assembly code#pragma end
asm
功能作用:
asm
和end
asm
命令用于将其标记的汇
编程
序合并到.SRC文件中。这个带有
asm
和...
单片机/工控
27,374
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章