找回密码
 注册
关于网站域名变更的通知
查看: 466|回复: 3
打印 上一主题 下一主题

arm 汇编问题,ldr pc,lr

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-30 13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ARM 汇编问题

我想问您一下arm 汇编胡问题,如下。

.globl1 ]+ C5 U5 j$ L1 N1 n( [
_start:
% q6 P+ t" @( k, |' E+ w2 v5 Fbl _test
8 x& E, O* j* I) c3 I1 K; I$ U_end:* N4 I) @; n. H" p7 m1 d2 _
b _end8 f: \% m) L4 i" Y
_test:
9 E$ x4 o' r. I8 |2 g& P7 s1 C, [mov pc,lr @ 编译通过;
, C+ Q; A. y% t@LDR pc,lr @不能编译通过

问题:
* `( _: q: j) h; L1。
4 _( B4 e$ L, m/ M* t, z* [9 j( Gldr pc,lr @不能编译通过
4 K2 v% h$ B" L  P' [这是为什么?
0 ^4 S. D8 ^, _( a6 b* \) ~2。: c0 s+ Z5 |/ V/ V4 V4 L7 G
如下
. K& E% \# }3 C& Zbic r0,r0,#0x00ff4 Y7 l" u2 @+ g9 E0 v0 S
bic r0,r0,#0xff00' g2 m: |  z5 r0 y* w* d
没有问题,但
- u6 `" S( R& c( Jbic r0,r0,#0xffff
7 q" L9 H. c$ y) S" K. L就不行,是不是,1,2,都是一种错误呢?
' Y3 C  X2 N4 Y6 W9 s谢谢。。。3 j; B- C0 |2 m; n

& ~; h3 ~& C- ]


! d6 R. t) {3 w- v. _1 M

该用户从未签到

2#
发表于 2019-9-30 13:53 | 只看该作者
你在调用函数之前不是把返回地址存在lr中了吗?返回的时候只要再把lr的值赋给PC就行$ d6 o1 Q- }, u- g% V: F$ s
LDR r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.
$ h2 f: U% n. V- S0 w2 w*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0
) }5 L( _8 I* B: Z3 F3 B*如果name是个标识符:LDR R0,=NAME;//将NAME的地址存入R07 s, V: p9 Z: r5 j0 X
LR是寄存器,不是标示符
2 W! g+ `: |0 S* b' ~, V5 D

该用户从未签到

3#
发表于 2019-9-30 16:45 | 只看该作者
【LR】既然是寄存器,
0 I. L1 T  V# @% p2 N! v' c) v
% q/ S2 u' }- q9 u1 H! ?  wLDR PC,LR 什么不可行?
+ v" v! X& v2 Q* c" W不能理解为 将LR中的值赋给PC吗?! O# {  x: a: M+ S; B

+ [, L' x! b8 Z; l7 j4 W. a% G8 ]9 cLDR R0,R1 ,,, 这样不是一个道理吗?

该用户从未签到

4#
发表于 2019-9-30 16:46 | 只看该作者
ldr不是普通的协处理器吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 00:52 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表