cswat 发表于 2007-12-12 19:51:25

求助c与汇编的混编问题

毕业设计中还碰到了另外个问题
先看代码

#include<linux/delay.h>

void __delay(int loops)
{
long long dummy;
__asm__ __volatile__("gettr " __t0 ", %1\n\t"
      "_pta 4, " __t0 "\n\t"
      "addi %0, -1, %0\n\t"
      "bne %0, r63, " __t0 "\n\t"

      "ptabs %1, " __t0 "\n\t":"=r"(loops),
      "=r"(dummy)
      :"0"(loops));
}

void __udelay(unsigned long long usecs, unsigned long lpj)
{
usecs *= (((unsigned long long) HZ << 32) / 1000000) * lpj;
__delay((long long) usecs >> 32);
}

#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
({unsigned long msec=(n); while (msec--) udelay(1000);}))
#endif


这是c语言和汇编函数的混编
明白它用的是at&t的汇编格式。也看过这种格式的介绍但
比如:_pta 4, bne   r63,   还是不明白是什么意思 。

有相关的材料可以使用吗。
在此先谢谢各位了
页: [1]
查看完整版本: 求助c与汇编的混编问题