我在学习arm汇编的时候感觉很奇怪,为什么使用ldr指令取得的程序段语句标号的值和使用adr指令的值是不一样的?! 使用ldr始终不能取得正确的地址值!!!这是为什么?
源代码如下 N equ 10
area example,code,readonly entry code32
START ldr sp, =0x40003f00 此处--〉 ldr r3, =FUN mov r0, #N mov r1, r0 add r3, r3, #1 stmfd sp!, {r1-r12,lr} bx r3 STOP ldmfd sp!, {r1-r12,lr} b START code16 FUN cmp r0, #0 beq RET LOOP sub r1, r1, #1 add r0, r1, r0 cmp r1, #0 bne LOOP RET ldr r3, =STOP ldr r2, =0x01 bic r3, r2 bx r3 end |