linux下arm汇编的常用指令解析

1.  ldr 和 str :

(1) ldr 作为指令,叫做寄存器加载指令。将内存中的值加载到寄存器中。

(2) ldr 作为伪指令,实现一个32位常数或地址值加载到寄存器中。后面加载的常量或地址值标号前面必须有一个 “=” ,编译器会将伪指令替换成指令实现。

(3) str 将寄存器中的值保存到内存单元中。

2.  .long 伪操作,给数值分配内存单元。

start:
virable:
.long start

如上,表示将start表示的值存到virable所代表的内存中。

virable:
.long 0x66666666

如上,表示将0x66666666存入virable所在的内存单元中。

3.  adr 和 adrl:

伪指令,将一个地址加载到寄存器中。adr 小范围地址读取指令,将基于pc相对偏移的地址值读取到寄存器中。

adrl 中等范围地址读取指令。

4.  b 和 bl:

伪指令,实现基于pc值的相对跳转,b 用于不返回的跳转。bl 一般用于子程序跳转,即最后通过 mov pc,lr 返回程序被调用点处。

原文地址:https://www.cnblogs.com/youngvoice/p/4828930.html