Thumb指令集之: 单寄存器数据传送指令

时间:2013-09-30来源:网络

11.5.3寄存器装载指令LDR(3)

(1)编码格式

寄存器装载指令LDR(3)的编码格式如图11.44所示。

图11.44LDR(3)指令的编码格式

寄存器装载指令LDR(3)允许将一个32位内存数据装载到通用寄存器。此种形式的LDR指令常被用于访问PC相关(PC-relative)数据。

(2)指令的语法格式

LDRRd>,[PC,#immed_8>*4]

①Rd>

目的寄存器。

②PC

程序指针寄存器,用于计算内存访问的地址。计算地址时,PC值的bit[1]被系统默认为0进行计算,所以产生的内存访问地址必为字对齐。

③immed_8>

8位立即数。该立即数的4倍将和PC值相加,形成内存访问地址。

(3)指令操作的伪代码

Address=(PC[31:2]2)+(immed_8*4)

Rd=Memory[address,4]

(4)对应的ARM指令

LDRRd>,[PC,#immed_8>*4]

11.5.4寄存器装载指令LDR(4)

(1)编码格式

寄存器装载指令LDR(4)的编码格式如图11.45所示。

图11.45LDR(4)指令的编码格式

寄存器装载指令LDR(4)允许将一个32位内存数据装载到通用寄存器。此种形式的LDR指令常被用于访问堆栈数据。

(2)指令的语法格式

LDRRd>,SP,#immed_8>*4]

①Rd>

目的寄存器。

②SP

堆栈指针寄存器,用于计算内存访问地址。

③immed_8>

8位立即数。该立即数的4倍将和SP值相加,形成内存访问地址。

(3)指令操作的伪代码

Address=SP+(immed_8*4)

Ifaddress[1:0]==0b00

Data=memory[address,4]

Else

Data=UNPREDICTABLE

Rd=data

(4)对应的ARM指令

LDRRd>,[SP,#immed_8>*4]

1 2 3 4 5 6 7 8 9 10

关键词: Thumb指令集 单寄存器数据传送指令 ARM 寄存器装载指令 LDR(1)

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版