GZZXB 发表于 2010-12-20 08:32:01

请问Gorgon Meducer 如何通过宏引用插入汇编代码段?

#asm
         goto $+1
         goto $+1
         goto $+1
    #endasm
目的是想将这段汇编代码直接插入到程序中。goto $+1 代表任意一条汇编指令,假定单片机只支持#asm...#endasm方式插入汇编语句

void main(void)
{
   SysInit();
   delayn         //希望宏展开后变成以上汇编代码段
   while(1);
}

void main(void)//希望宏展开后变成以上汇编代码段

{
   SysInit();
   #asm
         goto $+1
         goto $+1
         goto $+1
    #endasm            
   while(1);
}

我这样试了不行:
#definedelayn    #asm\
                        goto $+1\
                        goto $+1\
                        goto $+1\
                     #endasm\
把汇编代码做成函数,再通过引用宏来调用应该可以,但我不想,因为堆栈不够。

Gorgon_Meducer 发表于 2010-12-20 13:57:39

看你是什么编译器了……
用asm("...")看看

GZZXB 发表于 2010-12-20 16:08:29

回复【1楼】Gorgon Meducer 傻孩子
看你是什么编译器了……
用asm("...")看看
-----------------------------------------------------------------------

谢谢!
编译器 ICCAVR
没有其它方法了么?

Gorgon_Meducer 发表于 2010-12-22 09:52:06

没有
页: [1]
查看完整版本: 请问Gorgon Meducer 如何通过宏引用插入汇编代码段?