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

arm 汇编问题,ldr pc,lr

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ARM 汇编问题

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

.globl
; V# \5 P4 l: `6 O0 q1 O1 |_start:# U: f9 b, T. }2 [
bl _test) E# h5 C6 W- d" S  Y
_end:+ Q8 ^0 {0 _. f
b _end8 y$ h4 |1 d" J7 h7 E: |
_test:
- S( H/ H2 P* l. j& ~mov pc,lr @ 编译通过;, j* O/ K! Y, j! |
@LDR pc,lr @不能编译通过

问题:
: D- p7 m) G& R% f; h& \: w1。4 B5 q& i; d8 R
ldr pc,lr @不能编译通过
2 A. t: ^: u8 J1 @3 C' K这是为什么?2 a! b; u! Y  ]1 Z
2。/ v8 u$ {9 n( C  ]* }& l, [
如下8 l+ O( N1 u: P! G  W0 x6 {
bic r0,r0,#0x00ff6 H% Z) j" @8 D8 {
bic r0,r0,#0xff00
* h$ P1 r- j5 i# c没有问题,但
- u& p4 f" ?: ^" p2 w& ibic r0,r0,#0xffff' _4 o4 U- F) a; v- f/ s
就不行,是不是,1,2,都是一种错误呢?
3 @$ h9 B* r9 u$ R+ s2 g$ I* ^谢谢。。。9 m% d( O+ Q& ?. J8 Z- a+ _. ~
6 u  _! H6 y4 y* I$ b8 H7 U

3 U/ a% C7 _: D  v! \) t

该用户从未签到

2#
发表于 2019-9-30 13:53 | 只看该作者
你在调用函数之前不是把返回地址存在lr中了吗?返回的时候只要再把lr的值赋给PC就行& l1 m* r% R6 W3 ~9 A% V# N& `
LDR r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.* h& O8 {' @. h. P" t
*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0
* n# B: I/ I7 R+ V( ^2 d7 C*如果name是个标识符:LDR R0,=NAME;//将NAME的地址存入R0, [2 q' U' S! }8 c# |! i! a
LR是寄存器,不是标示符
/ E6 t! `3 ~1 c) v

该用户从未签到

3#
发表于 2019-9-30 16:45 | 只看该作者
【LR】既然是寄存器,4 t( j8 F1 L" T
0 k/ z; Z4 P4 a
LDR PC,LR 什么不可行?& O2 k( s3 J8 h- ]( R' @
不能理解为 将LR中的值赋给PC吗?
2 [9 N( X3 a" h+ a" N! a  ~- e$ S, i0 p( }& @: u3 K
LDR R0,R1 ,,, 这样不是一个道理吗?

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-25 01:26 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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