打印
[AVR单片机]

IAR怎么内嵌汇编?

[复制链接]
2056|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ATmega16|  楼主 | 2007-10-11 09:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面一个简单例子,怎么把它编译成功?

void main(void)
{
DDRD = 0x00;
DDRB = 0xFF;
while(1) 
{
get_port();
}
}  


void get_port()
{
   __asm 
    ("in R16,_SFR_IO_ADDR(PIND)"    " "
    "swap R16"        " "
    "out _SFR_IO_ADDR(PORTB),R16"   " "   
      );
}

相关帖子

沙发
computer00| | 2007-10-11 09:44 | 只看该作者

没用过IAR...不过我想帮助手册里面应该有

使用特权

评论回复
板凳
yewuyi| | 2007-10-11 10:12 | 只看该作者

最简单的:asm("");

使用特权

评论回复
地板
MicroMMU| | 2007-10-12 23:07 | 只看该作者

插入汇编要注意栈。

         asm("PUSH R16");
         asm("PUSH R17");
         asm("PUSH R18");   
         asm("LDS R16,RevData");
         asm("LDS R17,RevData+1");
         asm("LDS R18,RevData+2");
         asm("CLC");
         asm("ROL r16"); 
         asm("ROL r17");
         asm("ROL r18");
         asm("CLC");
         asm("ROL r16");
         asm("ROL r17");
         asm("ROL r18");
         asm("STS RevData,R16");
         asm("STS RevData+1,R17");
         asm("STS RevData+2,R18");
         asm("POP R18");
         asm("POP R17");
         asm("POP R16"); 

使用特权

评论回复
5
ATmega16|  楼主 | 2007-10-13 17:21 | 只看该作者

内嵌汇编如何访问IO寄存器?

内嵌汇编如何访问IO寄存器?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

229

帖子

0

粉丝