ARM汇编指令的问题 DCD
ARM启动代码中的中断向量里有 "b HandlerSWI".执行后将跳到下面。(按照规则,用R0来传递参数,用来选择要执行的函数)
HandlerSWI
cmp r0 ,#4
ldrlo pc ,[pc,r0,lsl #2]
movs pc , lr
swiFunction
DCD fu1
DCD fu2
DCD fu3
DCD fu4
fu1
........
movs pc , lr
fu2
........
movs pc , lr
fu3
........
movs pc , lr
fu4
........
movs pc , lr
请问代码中的DCD怎么理解?书上说是分配一段字的内存单元。不过好像没法和上面的用法联系起来啊?请高人指教。谢谢。
[解决办法]
这个还真不太好解释
存储的是fu1的值,而fu1的值就是函数的地址
在指令中通过LDR指令将地址加载到PC中就实现了函数跳转
[解决办法]
楼主可以买本书或者直接google一堆一堆的。可以系统学习下。