最简单的办法,你用C实现该功能,然后仿真运行可以查看生成的汇编代码。
C语言原型
void strCpy(char *pDst, const char *pSrc)
{
while(*pSrc)
{
*pDst = *pSrc;
pDst ++;
pSrc ++;
}
}
仿真编译结果
8: while(*pSrc)
9: {
0x00000EF0 E003 B 0x00000EFA
10: *pDst = *pSrc;
0x00000EF2 780A LDRB r2,[r1,#0x00]
0x00000EF4 7002 STRB r2,[r0,#0x00]
11: pDst ++;
0x00000EF6 1C40 ADDS r0,r0,#1
12: pSrc ++;
13: }
0x00000EF8 1C49 ADDS r1,r1,#1
8: while(*pSrc)
9: {
10: *pDst = *pSrc;
11: pDst ++;
12: pSrc ++;
13: }
0x00000EFA 780A LDRB r2,[r1,#0x00]
0x00000EFC 2A00 CMP r2,#0x00
0x00000EFE D1F8 BNE 0x00000EF2
14: }
然后取出其中的汇编代码就行了
LOOP
LDRB R2, [R1]
STRB R2, [R0]
ADDS R0, R0, #1
ADDS R1, R1, #1
LDRB R2, [R1]
CMP R2, #0
BNE LOOP
BX LR
注释参考C语言函数