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

如何实现c51和asm的混编

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如何实现c51和asm的混编! H* y$ M" J% c
( L" r1 b! V. x1 v' i6 K+ Z( Y; P
这是我在编程中积累的经验,希望对大家有用!
如何实现C51和汇编的混合编程' |# l6 }' a! I5 A4 d
(文中用到的编译器一律为keil)) q, E4 v/ h7 }: e3 b, V
1、首先来个范例,并从这个范例展开说明:
/ j& g8 x( H" Y- Y* |6 Z  g' {............       //C51 Code here2 l$ o3 H+ M- t+ G+ C
#pragma ASM
3 P- p- D! P* _0 F8 L0 e.............     //Here is the Assembler Code
9 J3 K2 z" M& k$ v#pragma ENDASM
- s' p+ n5 V0 C+ S6 S( ?8 ~...........      //C51 Code here
2、看到范例,大家应该对实现C51和汇编的混合有个大概了解了,呵呵,
其实也就这么一回事。
, F+ e. `, N3 F" [9 R但是我们还必须要做一些前提工作,首先在Project窗口中包含汇编代码(
ASM)的C文件单击右键,选择“Options for ...”,然后点击“Generate
Assembler SRC File”和“Assemble SRC File”
3、根据选择的编译模式,把相应的库文件加入工程,应该注意的是,这个
文件必须作为该工程的最后一个文件
8 M) r* O9 g  E' f- z
4、大家可以复制下面这个C51和汇编的混编代码练习一下,加深印象6 `) y7 ^6 m6 \6 N: N( o& h: x
#i nclude <reg51.h>6 ~3 S# \: o0 V
void main(void)
) x/ l4 U2 I7 Y% g7 f{
6 K9 C, D# Q5 K: B# j9 }P2=0x00;
2 v  Y$ n+ G, L#pragma asm8 L! w2 m' |& |1 C  L3 p8 l; ~
      MOV R7,#10
- n6 C1 n, X- {+ D. t#pragma endasm6 Q2 T$ O5 T' u% T( n9 i6 C; ~( M4 }
P2=0xff;# Y( V" D: u, m# s9 `- L% S6 z
}- J' C4 @8 y5 G, i; S

8 `! J3 G+ J& i# z) z5、上面的过程掌握了以后,我们再来看一下如何实现无参数传递的函数调3 _4 F; n$ p) V! o2 ^6 q
$ i0 R/ u& Z4 X" j& I" s" S
例如我们要调用一个延时函数delay()9 N- T" W) E6 F2 r4 z
     //C51. v! e' p) i% D, N1 {% |
extern void delayms();   //声明
, U5 z5 z! P% K- I( dint main()/ G: o- G2 V. C0 o; u) \) U* u; x& {$ Z; }
{1 Y+ g" N) R& ?+ W6 d6 K
delayms();   //调用0 x. z  _1 C1 S9 N# K) d3 \5 u
}
6 g4 X+ G$ v1 l+ w# d( H% g% v6 ]) T/ g) }/ k5 Q
6、有参传递
( D& g1 b7 c+ B0 M, s& _8 E5 N其实是一样的,就是在子函数中加了参数罢了
& Z/ V5 o) S3 \2 F例如:int delay(int minite,int second,……)//参数可以多个
. i2 D, d9 B( m) D3 D6 b

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-5 16:13 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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