|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADR R$ E' _! K$ m" ^ I% V
$ q4 O Y" T: R
5 c& X% J) {+ C$ g' p) A- O( }是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。格式:ADR register,exper。
) ?. l* ^4 K* p5 Q @; k
! K/ C$ ]9 u& D
, Y: T# X" W* e# e5 a编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距离,然后用一条ADD或者SUB指令替换这条伪指令,
: k2 I# h: u) q' z: l例如:ADD register,PC,#offset_to_exper。 & b$ [" e' i1 A' ~7 }: L
注意,标号exper与指令必须在同一代码段。
8 g I1 ?/ } F4 J( C6 H比如:adr r0, _start ://将指定地址赋到r0中 * r, r! B( R9 H! g7 E
………
* U; X }, z) Z7 a. t_start: - G3 C% p6 O9 ]1 I
b _start 9 R+ R2 q/ j' f0 x
r0的值为标号_start与此指令的距离差 + PC值。# W9 \7 x; s' c: e0 R
% t7 n7 d* I- ]% q7 K1 j
+ T/ [9 i9 |4 z$ u8 D/ T( C( T$ o
ADRL:3 ?3 w- b) q/ |0 s- F
2 u G2 z. Y* H* i9 S! D1 H b# |8 x- \
' C# }: w: l6 w0 [" M4 |8 n1 ~' ?8 D7 F1 s
5 ]" ~- G5 D" {' ^$ y& ]
# S; R/ u. z" W( e$ b3 \
; V; `) Z! N1 \ |
|