[ZLG-MCU] 急!请教如何在C源程序中加入汇编代码

[复制链接]
1930|1
 楼主| 坚持梦想 发表于 2008-3-29 23:20 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;如何在IAR开发环境下的C源程序中加入汇编代码?因为读取外设的需要,最好是用ARM指令直接操作硬件。<br />  试了几种方法,都不行,现在不知道要怎么进行下去。急求高手赐教。。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
zlgarm 发表于 2008-3-31 08:41 | 显示全部楼层

各种编译器嵌入汇编

IAR:<br />long&nbsp;longMul(long&nbsp;lX,&nbsp;long&nbsp;lY)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;__asm(&quot;&nbsp;&nbsp;&nbsp;&nbsp;smull&nbsp;&nbsp;&nbsp;r0,&nbsp;r1,&nbsp;r0,&nbsp;r1
&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;lsrs&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r0,&nbsp;#16
&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r0,&nbsp;r1,&nbsp;lsl&nbsp;#16
&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;bx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lr&quot;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return(0);&nbsp;&nbsp;/*&nbsp;不会跑到这里,用于防止编译警告!*/<br />}<br /><br /><br />GCC:<br />static&nbsp;long&nbsp;__attribute__((naked))&nbsp;longMul(long&nbsp;lX,&nbsp;long&nbsp;lY)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;__asm(&quot;&nbsp;&nbsp;&nbsp;&nbsp;smull&nbsp;&nbsp;&nbsp;r0,&nbsp;r1,&nbsp;r0,&nbsp;r1
&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;lsrs&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r0,&nbsp;#16
&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r0,&nbsp;r1,&nbsp;lsl&nbsp;#16
&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;bx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lr&quot;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return(0);&nbsp;/*&nbsp;不会跑到这里,用于防止编译警告!*/<br />}<br /><br /><br />Keil:<br />__asm&nbsp;long&nbsp;longMul(long&nbsp;lX,&nbsp;long&nbsp;lY)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;smull&nbsp;&nbsp;&nbsp;r0,&nbsp;r1,&nbsp;r0,&nbsp;r1;<br />&nbsp;&nbsp;&nbsp;&nbsp;lsrs&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r0,&nbsp;#16;<br />&nbsp;&nbsp;&nbsp;&nbsp;orr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r0,&nbsp;r1,&nbsp;lsl&nbsp;#16;<br />&nbsp;&nbsp;&nbsp;&nbsp;bx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lr;<br />}<br /><br /><br />(zlgarm_zsg)<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

39

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部