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 u0 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 yADRL: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 A6 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