arm gcc 的语言中嵌入arm汇编
将如下c代码改为汇编:
int16* src;
int32* dest;
int32 i,j,ofs;
int32 temp1,temp2,temp4;
int16 temp3;
.................
for (j = 0; j < i; j++)
{
dest[j] = src[j + ofs];
}
dest += i;
ofs += i;
改为汇编为:
__asm__ __volatile__(
"add %6, %0, %2,lsl#1
mov %7, %1
mov %5, %3
loop :
ldrh %4,[%6], #2
str %4 ,[%7],#4
subs %5,%5 ,#1
bgt loop
add %1, %1, %3,lsl#2
add %2, %2, %3"
:"=r" (src), "=r" (dest), "=r" (ofs), "=r" (i),"=r" (temp1),"=r" (temp2),"=r" (temp3),"=r" (temp4)
:"0" (src), "1" (dest), "2" (ofs),"3" (i)
:"cc"
);
编译能通过 ,但结果问题 那位大哥给指点一下,急呀!!!!!
|
|