symbian大部分平台使用的都是arm的CPU,所以在某些特殊的场合,例如为了加快程序运行速度等。就可以编写汇编代码来实现程序高速运行。vs.net + gcc环境测试后发现不支持汇编,所以只能用carbide+gcc环境,至于carbide+armv5因为需要昂贵的费用购买arm专用汇编器,所以就不测了。
GCC arm汇编和 arm汇编在伪指令上有些区别,所以在学了arm的基本指令后还得研习gcc for arm的伪指令,不然,在carbide 中编译的时候会提示错误。
C语言的函数为:
int SearchBig()
{
int a[4] = {10 , 11, 13 ,0, 22 };
return a[4]
}
用gcc arm汇编后如下:
.text
.global SearchBig
SearchBig:
LDR r12,=value
LDMIA r12, {r0-r4}
CMP r0,r1
MOVLE r0,r1
CMP r0,r2
MOVLE r0,r2
CMP r0,r3
MOVLE r0,r3
CMP r0,r4
MOVLE r0,r4
mov pc,lr
.end
.data
value:
.int 10 , 11, 13 ,0, 22
.end