AREA StrCopy, CODE, READONLY ENTRY ; mark the first instruction to call
start LDR r1, =srcstr ; pointer to first string LDR r0, =dststr ; pointer to second string
BL strcopy ; call subroutine to do copy
stop MOV r0, #&18 ; angel_SWIreason_ReportException LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit SWI 0x123456 ; ARM semihosting SWI
strcopy LDRB r2, [r1],#1 ; load byte and update address STRB r2, [r0],#1 ; store byte and update address; CMP r2, #0 ; check for zero terminator BNE strcopy ; keep going if not MOV pc,lr ; Return
AREA Strings, DATA, READWRITE srcstr DCB "First string - source",0 dststr DCB "Second string - destination",0
END 以上是一条字符串拷贝程序, 程序执行到BL strcopy后,没有跳转到strcopy处,而是继续执行下一条语句(stop),请问为什么? |