问题描述
- arm 汇编胡问题,,ldr pc,lr
-
arm 汇编胡问题
我想问您一下arm 汇编胡问题,如下。.globl
_start:
bl _test
_end:
b _end
_test:
mov pc,lr @ 编译通过;
@ldr pc,lr @不能编译通过问题:
1。
ldr pc,lr @不能编译通过
这是为什么?
2。
如下
bic r0,r0,#0x00ff
bic r0,r0,#0xff00
没有问题,但
bic r0,r0,#0xffff
就不行,是不是,1,2,都是一种错误呢?
谢谢。。。
本人新手,请多关照!
解决方案
arm汇编里面返回指令为什么能用mov pc ,lr而不能用ldr pc,=lr?
你在调用函数之前不是把返回地址存在lr中了吗?返回的时候只要再把lr的值赋给PC就行
LDR r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.
*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0
*如果name是个标识符:LDR R0,=NAME;//将NAME的地址存入R0
LR是寄存器,不是标示符
解决方案二:
to:PB人生
【LR】既然是寄存器,
LDR PC,LR 什么不可行?
不能理解为 将LR中的值赋给PC吗?
LDR R0,R1 ,,, 这样不是一个道理吗?
解决方案三:
ldr就是做普通协处理器的 pc是第13个 不能用
时间: 2024-11-01 03:02:21