文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ADRL 伪指令

ADRL 伪指令

时间:2010-09-06  来源:hunaiquan

将相对于程序或相对于寄存器的地址载入寄存器中。 与 ADR 指令相似。ADRL 生成两个数据处理指令,因此它比 ADR 加载的地址范围要宽。

Note

在为 Thumb-2 之前的处理器汇编 Thumb 指令时,不能使用 ADRL。

语法

ADRL{cond} Rd,label

其中:

cond

是一个可选的条件代码(请参阅条件执行)。

Rd

是要加载的寄存器。

label

是相对于程序或寄存器的表达式。 有关详细信息,请参阅相对寄存器和程序相对的表达式。

用法

ADRL 始终汇编为两个 32 位指令。 即使使用单个指令就可完成地址访问,也会生成多余的第二个地址。

如果汇编器无法将地址构建为两个指令,则它将生成一条错误消息,汇编将失败。 有关加载更宽范围地址的信息,请参阅LDR 伪指令(另请参阅将常数加载到寄存器)。

ADRL 可生成与位置无关的代码,因为地址相对于程序或寄存器。

如果 label 相对于程序,则它必须计算为与 ADRL 伪指令处于同一汇编器区域内的地址,请参阅AREA。

如果使用 ADRL 来为 BX 或 BLX 指令生成目标,则当目标中包含 Thumb 指令时,您就要自己设置地址的 Thumb 位(位 0)。

体系结构和范围

可用范围取决于所用的指令集:

ARM

±64KB,字节或半字对齐的地址。

±256KB 字节,字对齐地址。

32 位 Thumb

±1MB 字节,字节、半字或字对齐地址。

16 位 Thumb

ADRL 不可用。

上面给出的范围是相对于位于当前指令地址后的、距离当前指令四个字节(在 Thumb 代码中)或两个字(在 ARM 代码中)远的点而言的。如果对齐为 16 字节,或与此点的相关性更高,则远程地址的范围可更大。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载