红联Linux门户
Linux帮助

求助c与汇编的混编问题

发布时间:2007-12-12 19:47:03来源:红联作者:cswat
毕业设计中还碰到了另外个问题
先看代码

#include

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, 还是不明白是什么意思 。

有相关的材料可以使用吗。
在此先谢谢各位了
文章评论

共有 0 条评论