当前位置: 代码迷 >> WinCE >> arm9 ldr r13,=0x1000解决办法
  详细解决方案

arm9 ldr r13,=0x1000解决办法

热度:504   发布时间:2016-04-28 13:11:34.0
arm9 ldr r13,=0x1000
我用的是飞凌的 ok2440 ,哎 菜鸟一只 


AREA |DATA|,CODE,READONLY
ENTRY
ldr r13,=0x1000
IMPORT LedMain
b LedMain
END

我看见 led bell等裸机程序中都有这个汇编跳转程序的 可是不懂 ldr r13,=0x1000 这句话有什么作用? =0x1000是什么啊? 教材上也没写,网上这东西又找不到的...帮帮忙

------解决方案--------------------
有“=”号表示ldr是一个伪指令。
ldr r13,=0x1000
就表示把立即数0x1000送入r13
------解决方案--------------------
探讨
呵呵  一直不懂那个 =  是什么意思 ,现在知道了 

简单讲就是将LDR PC,=value可以这样理解:
MOV Rd,#value 或者
LDR Rd, [PC, #offset]

在高手看来很简单吧  可是俺是菜鸟

------解决方案--------------------
探讨
r13是stack pointer,因为后面要跳到LedMain,估计这个function是用c写的,所以必须要事先分配stack,否则c程序没法运行。给r13赋值就是分配stack,对跑马灯来说只要是可用内存就行,并不在乎具体地址在哪。
  相关解决方案