QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2084|回复: 0

求助c与汇编的混编问题

[复制链接]
发表于 2007-12-12 19:51:25 | 显示全部楼层 |阅读模式
毕业设计中还碰到了另外个问题
先看代码

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

有相关的材料可以使用吗。
在此先谢谢各位了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 08:14 , Processed in 0.041038 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表