找回密码
 注册
关于网站域名变更的通知
查看: 571|回复: 2
打印 上一主题 下一主题

如何实现c51和asm的混编

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-7 13:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何实现c51和asm的混编& q4 K8 e( ~; i2 B2 D5 ^0 ?& T! X

0 x# w# e" `6 i( x5 s$ z, v
这是我在编程中积累的经验,希望对大家有用!
如何实现C51和汇编的混合编程
! |8 n( {/ F3 l(文中用到的编译器一律为keil)
  ?0 J& n( x$ \1 ?; j1、首先来个范例,并从这个范例展开说明:
7 }+ x. o  q& D* o............       //C51 Code here5 M6 {: N, r( K! |8 d8 ^
#pragma ASM
* t1 O- Q4 ^8 j  ^0 G.............     //Here is the Assembler Code0 o3 \2 W2 M. _  b( Y
#pragma ENDASM) @3 g* _7 s9 [" a2 E# A. j5 r7 G
...........      //C51 Code here
2、看到范例,大家应该对实现C51和汇编的混合有个大概了解了,呵呵,
其实也就这么一回事。  R9 p0 h6 N% k8 k
但是我们还必须要做一些前提工作,首先在Project窗口中包含汇编代码(
ASM)的C文件单击右键,选择“Options for ...”,然后点击“Generate
Assembler SRC File”和“Assemble SRC File”
3、根据选择的编译模式,把相应的库文件加入工程,应该注意的是,这个
文件必须作为该工程的最后一个文件
) V+ ]* t" x& z" ]! c
4、大家可以复制下面这个C51和汇编的混编代码练习一下,加深印象' x# a: _4 C/ H$ l& o+ C
#i nclude <reg51.h>: Y: ?9 w  I5 |! J. D
void main(void)
4 M1 X! c, b( L/ F* H0 N{& W' g) M/ o2 i( R& M6 W+ j5 k
P2=0x00;/ Y( `- P) v) e
#pragma asm
3 t) B9 V% l/ ]( v1 _" \      MOV R7,#10" x6 {. R6 U$ F* U
#pragma endasm
1 Y, g, C! z* y- ?5 uP2=0xff;: _& a7 F" C% l) k8 f* w: [
}* G% P$ D5 s& ^1 i/ w' _0 D7 I' q

7 r. ~% ~% p- M% c# ^0 X5、上面的过程掌握了以后,我们再来看一下如何实现无参数传递的函数调
9 E8 [$ Y* q0 t* t
0 B% o9 N) B6 X& @$ L例如我们要调用一个延时函数delay()
% z5 G/ R2 t* p6 ?& f' x( l2 ]     //C51
" g% e$ S! g* a$ h! ~( Eextern void delayms();   //声明  f8 E: |: s1 @. `% D' V
int main()
( b4 z$ h2 c3 X- Z+ C' a+ R) `9 }{
) Z8 u2 [) r1 vdelayms();   //调用
/ N* v* ?( }7 t1 I* ^}  g  `7 }6 H4 X/ {/ x% j) C0 X
9 S. v0 z8 q. {" n# u4 a7 t
6、有参传递1 h% |6 @8 I' U% P
其实是一样的,就是在子函数中加了参数罢了
6 w1 e9 f* u) b: j2 v5 N( ]例如:int delay(int minite,int second,……)//参数可以多个

$ x% V( Z* \! h  U: }

该用户从未签到

2#
发表于 2018-12-7 13:58 | 只看该作者
不错 感谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 07:59 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表