EDA365电子论坛网
标题:
ARM指令adr adrl ldr mov简单介绍
[打印本页]
作者:
thinkfunny
时间:
2019-7-3 11:12
标题:
ARM指令adr adrl ldr mov简单介绍
ADR
+ ]4 n$ Q- E) `# V1 ^" L8 ^
& j! ?1 y0 T, H
/ W4 g8 |# f% g) V$ q, K5 O7 ~
是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。格式:ADR register,exper。
, |7 {1 [9 M. A5 u
0 l3 K) `' g7 F$ S2 } x9 w
) q& U1 x: \# p
编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距离,然后用一条ADD或者SUB指令替换这条伪指令,
& b$ p0 x8 Y9 s5 R+ `
例如:ADD register,PC,#offset_to_exper。
8 _5 {- o9 `0 Q; ^
注意,标号exper与指令必须在同一代码段。
6 e9 C# K6 R9 A; ^5 m9 L& _! L
比如:adr r0, _start ://将指定地址赋到r0中
# e8 u) r* M6 f% T F1 {8 ~
………
& _8 L F* V3 t3 a3 o
_start:
/ T- I/ |2 k4 x0 U( m! r0 [
b _start
! u2 n4 B6 e- l" J3 ^ d M9 X
r0的值为标号_start与此指令的距离差 + PC值。
" i2 ]0 Y- e3 |* |- B3 j, ]
2 [ h8 Z9 e1 M Z0 L" [' ]; J
1 b; f( F7 ]7 l( s# {8 f7 y
ADRL:
5 ?/ ?# p6 s6 E0 j0 o
+ L0 r( G% m# ~; X; c4 G
i6 X2 q# h/ q6 X
0 _0 M5 s8 Y' D9 b# W+ e }
! b5 F, q) H/ o9 H9 U
* m6 x: M+ s' R ]6 I w
+ _. @5 m& ^, M6 A
6 o) D, B) `; J; ^6 q
作者:
loveeatmore
时间:
2019-7-3 18:45
学习一下
作者:
relchhiclty
时间:
2019-7-4 16:25
看看
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2