|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADR
3 X9 t; W6 \0 P% W; e/ Q% L, ^
. G! a, J% i4 r* t9 v9 v3 [3 z% s* S5 d
0 } w ?* c% D5 _9 w( C4 N( _是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。格式:ADR register,exper。, R* P4 R1 A; b
6 E5 u4 B# ^7 k/ w% C) `6 q; n" E! F( ?; r* } _2 b; B1 j) q
编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距离,然后用一条ADD或者SUB指令替换这条伪指令,
1 y# V: J2 A7 N" y. q2 A* t9 z例如:ADD register,PC,#offset_to_exper。 3 j/ R7 [9 U, y2 R
注意,标号exper与指令必须在同一代码段。
) ^5 Z6 R0 c0 g$ O0 D6 q$ v# w比如:adr r0, _start ://将指定地址赋到r0中
1 p, l6 `! U0 k9 D) B# F……… + z$ ?) h$ U2 q8 x* O
_start:
% u5 U2 j5 W# v5 gb _start ' Q) z; b8 A7 i- k: ?
r0的值为标号_start与此指令的距离差 + PC值。. B; [0 M/ N" C: c' e
) ~5 _9 D1 j1 t6 C3 i( i
, C; t+ z; |" p3 p6 Z+ p
ADRL:
l, g# S5 J, T# D9 O
( h4 ^ E5 ?- b+ {, P8 O6 ^% t! N9 R4 \4 C7 l2 o
, c H, C; j. Y) {0 Y
4 }1 q3 f0 T& v9 x: S$ F
; {7 j6 q$ O5 t C* {8 Q7 K) r, W }6 G) @5 T+ @* b! s5 W4 I7 ?4 y
! m: d3 [7 V3 c) V5 E/ [
|
|