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

arm 汇编问题,ldr pc,lr

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ARM 汇编问题

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

.globl% _+ s* F: d9 o. @3 @  O
_start:' o* q! K0 o+ a: r4 w+ i* \& t
bl _test
1 P# q: Q: Q' r( ^. V- X& r* Z$ T_end:; N8 W& a$ _) e- Z* [- q6 c! T
b _end6 W! f. j) J; r, ]* z9 Y) H
_test:4 V! N+ V( @2 R2 A5 N
mov pc,lr @ 编译通过;
2 D, J8 B3 C9 e8 w@LDR pc,lr @不能编译通过

问题: , R7 u3 }  v0 q+ w& u; {
1。3 s* ?9 B& w4 p8 e# r
ldr pc,lr @不能编译通过
6 }1 p6 n  w6 x4 k( f这是为什么?# [8 n' R7 N: m- L; N& L
2。3 O7 _3 J- Y: n% e( _: x# W
如下! v3 n7 P9 E  P8 P
bic r0,r0,#0x00ff
% }( U; a7 f  n# B. m5 m: obic r0,r0,#0xff008 Z. ]( ]+ F! q# M  y+ T; `
没有问题,但
4 c- R. F5 Z9 n5 P2 qbic r0,r0,#0xffff
( U7 I( Q" u8 Y' [, U3 E就不行,是不是,1,2,都是一种错误呢?$ }& u* ]. O7 S8 I4 X
谢谢。。。: b) E0 L/ b6 e/ h
* ?+ U6 y: a6 B/ v3 H4 A


4 r5 y9 O7 V, l, m

该用户从未签到

2#
发表于 2019-9-30 13:53 | 只看该作者
你在调用函数之前不是把返回地址存在lr中了吗?返回的时候只要再把lr的值赋给PC就行2 c) L" C5 |8 D, g
LDR r0,=name,像这种带等号的是伪指令,而不是ARM指令,LDR 伪指令用于加载立即数或一个地址值到指定寄存器.
% |4 V! K* S1 D5 d*如果name是立即数的话:LDR R0,=0X123;//将0X123存入R0- J8 K( |- d* A1 N3 A' U" f9 a3 Q
*如果name是个标识符:LDR R0,=NAME;//将NAME的地址存入R0
6 L- z8 z5 ~: o9 ^* J- Y! VLR是寄存器,不是标示符
/ n# p/ q: k  D  ?: p

该用户从未签到

3#
发表于 2019-9-30 16:45 | 只看该作者
【LR】既然是寄存器,
5 L" ~! d* U% O  N3 i! v. U1 L6 a, m0 g# r  U& X  P
LDR PC,LR 什么不可行?! l; x: \5 ~: v' m" g
不能理解为 将LR中的值赋给PC吗?
. E, O. G6 w' r' \) R' B% [" C" M4 K6 E1 }# X9 \& d
LDR R0,R1 ,,, 这样不是一个道理吗?

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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