您的位置 首页 电子

c51中嵌套汇编的办法

怎么样在c程序中使用汇编编程方法一:在每个汇编语句前加asm即可。如voidreset_data(void){asmmovr0,#0dfhasmdo_resetdata:asmmov@r0,#00ha

怎么样在c程序中运用汇编编程

办法一:在每个汇编句子前加asm即可。如

voidreset_data(void)

{

asmmovr0,#0dfh

asmdo_resetdata:

asmmov@r0,#00h

asmdjnzr0,do_resetdata

return;

}

办法二:把asm作为关键字后续汇编用大括号括起来即可。如下:

voidreset_data(void)

{

asm

{movr0,#0dfh

do_resetdata:

mov@r0,#00h

djnzr0,do_resetdata

}

return;

}

keilc6.20c直接嵌入汇编的办法

发表于2007-5-2418:23:17

#ifdefASM

unsignedlongshiftR1(registerunsignedlong);

#else

externunsignedlongshiftR1(registerunsignedlong);

#endif

//endofasm.h

//

#defineASM

#include

#include

#pragmaOT(4,speed)

unsignedlongshiftR1(registerunsignedlongx)

{

#pragmaasm

clrc

mova,r4

rrca

movr4,a

mova,r5

rrca

movr5,a

mova,r6

rrca

movr6,a

mova,r7

rrca

movr7,a

#pragmaendasm

return(x);

}

//endofasm.c

将此源文件参加要编译的工程文件,

将光标指向此文件,挑选右键菜单“optionforfileasm.c”,

将特点单“properties”中的“GenerateAssemblerSRCFile”“AssembleSRCFile”

两项设置成黑体的“√”将“LinkPublicOnly”的“√”去掉,再编译即可。

用此办法能够在c源代码的恣意方位用#pragmaasm和#pragmaendasm嵌入汇编句子。

但要留意的是在直接运用形参时要当心,在不同的优化等级下发生的汇编代码有所不同,

能够观察对应的.lst文件看一看,得到正确的优化等级后,#pragmaOT(x,speed)确定

优化等级(这儿的值是0-9)。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/266721.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部