|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
ADR
0 H `! I/ o: y O4 t9 ^/ X4 A/ ~2 C' B( ?. u f
8 C; f; f2 Z9 x6 f! u" [$ Q
是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中。格式:ADR register,exper。
/ a" ]8 U1 g6 |* i% F% B" j3 C2 \& p% B, _" F3 k! }
1 y+ v% K( C* S8 j5 {
编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距离,然后用一条ADD或者SUB指令替换这条伪指令, ! v! |4 [" d# h
例如:ADD register,PC,#offset_to_exper。
! v$ w# |2 g) E2 \0 m( A) H注意,标号exper与指令必须在同一代码段。
/ \: Y6 d, X2 x7 ^( ], A$ W比如:adr r0, _start ://将指定地址赋到r0中 * D9 q2 o) I9 f$ t/ L6 Z, J
……… ) j+ b, h& p3 J6 W* h0 @" V
_start:
/ C1 Y3 ?" P+ cb _start
+ h( q! y# u, c' u. mr0的值为标号_start与此指令的距离差 + PC值。
4 n P: _* @) W# {7 _; |
9 a8 E' S4 q) p# s& n0 ]3 |+ d( @& Q- g
ADRL:
. u, w; P$ b- H) c$ d& R
: r4 X0 @/ Y9 `/ B, K
) V3 v0 j) X: Q
& t) A9 N1 `! q, p
$ m. T9 {% T4 u, u8 I- G! O
$ ?1 u- F) v! Q) y: Z, _# P2 V3 X, Z( z2 }. m8 t& Q
2 B( K' e+ O5 R9 u4 x |
|