您的位置 首页 主动

ARM伪指令之地址读取:ADR/ADRL/LDR

1、ADR伪指令—小范围的地址读取ADR伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中。在汇编编译器编译源…

1、ADR伪指令— 小规模的地址读取

ADR伪指令将根据PC相对偏移的地址值或根据寄存器相对偏移的地址值读取到寄存器中。

在汇编编译器编译源程序时,ADR伪指令被编译器替换成一条适宜的指令。一般,编译器

用一条ADD指令或SUB指令来完成该ADR伪指令的功用,若不能用一条指令完成,

则发生过错,编译失利。

ADR伪指令格局 :ADR{cond}register, expr

地址表达式expr的取值规模:

当地址值是字节对齐时,其取指规模为: +255 ~ 255B;

当地址值是字对齐时,其取指规模为: -1020 ~ 1020B;

2、ADRL伪指令—-中等规模的地址读取

ADRL伪指令将根据PC相对偏移的地址值或根据寄存器相对偏移的地址值读取到寄存器中,

比ADR伪指令能够读取更大规模的地址。在汇编编译器编译源程序时,ADRL伪指令

被编译器替换成两条适宜的指令。若不能用两条指令完成,则发生过错,编译失利。

ADRL伪指令格局:ADRL{cond}register, expr

地址表达式expr的取值规模:

当地址值是字节对齐时,其取指规模为: -64K~64K;

当地址值是字对齐时,其取指规模为: -256K~256K;

3、LDR伪指令—–大规模的地址读取

LDR伪指令用于加载32位的当即数或一个地址值到指定寄存器。在汇编编译源程序时,

LDR伪指令被编译器替换成一条适宜的指令。若加载的常数未超出MOV或MVN的规模,

则运用MOV或MVN指令替代该LDR伪指令,不然汇编器将常量放入文字池,

并运用一条程序相对偏移的LDR指令从文字池读出常量。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/276400.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部