Symbian C++ 的内联ARM汇编

每次用C/C++就有用inline assembler的冲动,尤其是这次的CPU是ARM,不同的指令集不知会有多少的相似之处,直接用原来的__asm习惯写法,结果,GCCE编译报错,不做盲目的尝试,直接狗狗,立刻得到答案:


GCCE不支持内联汇编(http://www3.symbiandevnet.com/faq.nsf/0/0FA07D10A96059FB8025704300038F39?OpenDocumentGCC-E cannot handle files containing inline assembler)。T_T
于是去找了个RVDS(RealView Developer Suite),由于我只是要其中的ARM编译器,所以除了RVCT以外,其它什么都没装。再次编译,依然出错,说什么thumb指令集不能内联汇编,thumb什么东西?继续狗狗,原来Symbian C++编译有这几种指令集:WINS (windows), ARM4 (plain arm), ARMI (speed optimized arm), THUMB (size optimized ARM),于是进bld.inf把当前的mmp标记为build as arm,再次编译,通过,真机运行,通过,唉,终于迈出了第一布,等在后面的是那些奇怪的arm汇编指令结构囧(masm先入为主…)。
纪念一下这段没有任何意义的内联汇编:
#ifdef __WINS__
iRectX += iStepX;
iRectY += iStepY;
#else
// 小试一下arm inline assembler
__asm
{
add iRectX,iRectX,iStepX
add iRectY,iRectY,iStepY
}
#endif

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。