Chinaunix首页 | 论坛 | 博客
  • 博客访问: 738976
  • 博文数量: 124
  • 博客积分: 3156
  • 博客等级: 中校
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-02 10:29
文章分类

全部博文(124)

文章存档

2012年(3)

2011年(2)

2010年(61)

2009年(34)

2008年(24)

我的朋友

分类: LINUX

2009-04-30 11:20:06

int iprintf(const char *pbFmt,...)
{
        va_list pArg;
        char abString[256];

        va_start(pArg,pbFmt);
        vsprintf(abString,pbFmt,pArg);
      //  UARTSendData(abString);
        va_end(pArg);

        return 0;
}
int iprintf(const char *pbFmt,...)
{
800019B8  STMFD         R13!, {R0-R3}//子函数中不必保护R0~R3,但必须压栈。
800019BC  STMFD         R13!, {R7, R14}//如使用R4~R11必须保护,
800019C0  ADD           R7, R13, #0x8   //R7=R13+8;
800019C4  SUB           R13, R13, #0x104
        va_list pArg;
        char abString[256];

        va_start(pArg,pbFmt);
800019C8  ADD           R12, R7, #0x4 //没看懂,好像没通过SP传参,还是通过R3
800019CC  STR           R12, [R13]
        vsprintf(abString,pbFmt,pArg);
800019D0  ADD           R0, R13, #0x4
800019D4  LDR           R1, [R7]
800019D8  LDR           R2, [R13]
800019DC  BL            vsprintf
        va_end(pArg);

        return 0;
800019E0  MOV           R0, #0x0
800019E4  ADD           R13, R13, #0x104
800019E8  LDMFD         R13!, {R7, R14} //恢复R7和R14,
800019EC  ADD           R13, R13, #0x10  //和压入的R0~R3对应;不必恢复
800019F0  BX            R14              //带状态切换的跳转指令
}
阅读(1207) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~